秒杀多线程第一篇 多线程笔试面试题汇总

系列前言   本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。              ————-

大家好,又见面了,我是你们的朋友全栈君。

    系列前言

    本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。

              ————————————-华丽的分割线—————————————

第一篇    多线程笔试面试题汇总

 

    多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几个概念性题目)。然后是一些选择题,这些一般在笔试时出现,虽然不是太难,但如果在选择题上花费大多时间无疑会对后面的编程题造成影响,因此必须迅速的解决掉。最后是综合题即难一些的问答题或是编程题。这种题目当然是最难解决了,要么会引来面试官的追问,要么就很容易考虑不周全,因此解决这类题目时一定要考虑全面和细致。

    下面就来看看这三类题目吧。

 

一.概念性问答题

第一题:线程的基本概念、线程的基本状态及状态之间的关系?

 

第二题:线程与进程的区别?

       这个题目问到的概率相当大,计算机专业考研中也常常考到。要想全部答出比较难。

 

第三题:多线程有几种实现方法,都是什么?

 

第四题:多线程同步和互斥有几种实现方法,都是什么?

       我在参加2011年迅雷校园招聘时的一面和二面都被问到这个题目,回答的好将会给面试成绩加不少分。

 

第五题:多线程同步和互斥有何异同,在什么情况下分别使用他们?举例说明。

 

二.选择题

第一题(百度笔试题):

以下多线程对int型变量x的操作,哪几个不需要进行同步:
A. x=y;      B. x++;    C. ++x;    D. x=1;

 

第二题(阿里巴巴笔试题)

多线程中栈与堆是公有的还是私有的

A:栈公有, 堆私有

B:栈公有,堆公有

C:栈私有, 堆公有

D:栈私有,堆私有

 

三.综合题

第一题(台湾某杀毒软件公司面试题):

Windows编程中互斥量与临界区比较类似,请分析一下二者的主要区别。

 

第二题:

一个全局变量tally,两个线程并发执行(代码段都是ThreadProc),问两个线程都结束后,tally取值范围。

inttally = 0;//glable

voidThreadProc()

{

       for(inti = 1; i <= 50; i++)

              tally += 1;

}

 

第三题(某培训机构的练习题):

子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。

 

第四题(迅雷笔试题):

编写一个程序,开启3个线程,这3个线程的ID分别为ABC,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC.依次递推。

 

第五题(Google面试题)

有四个线程1、234。线程1的功能就是输出1,线程2的功能就是输出2,以此类推………现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:

A1 2 3 4 1 2….

B2 3 4 1 2 3….

C3 4 1 2 3 4….

D4 1 2 3 4 1….

请设计程序。

 

下面的第六题与第七题也是在考研中或是程序员和软件设计师认证考试中的热门试题。

第六题

生产者消费者问题

这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。

 

第七题

读者写者问题

这也是一个非常经典的多线程题目,题目大意如下:有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者读时写者也不能写。

 

多线程相关题目就列举到此,如果各位有多线程方面的笔试面试题,欢迎提供给我,我将及时补上。谢谢大家。

 

下一篇《多线程第一次亲密接触 CreateThread_beginthreadex本质区别》将从源代码的层次上讲解创建多线程的二个函数CreateThread_beginthreadex到底有什么区别,让你明明白白的完成与多线程第一次亲密接触。

 

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/7392749

 

下面列出目录,方便大家查看。

1.《秒杀多线程第一篇 多线程笔试面试题汇总

2.《秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

3.《秒杀多线程第三篇 原子操作 Interlocked系列函数

4秒杀多线程第四篇 一个经典多线程同步问题

5秒杀多线程第五篇 经典线程同步 关键段CS

6秒杀多线程第六篇 经典线程同步 事件Event

7秒杀多线程第七篇 经典线程同步 互斥量Mutex

8秒杀多线程第八篇 经典线程同步 信号量Semaphore

9秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量

10.《秒杀多线程第十篇 生产者消费者问题

11.《秒杀多线程第十一篇 读者写者问题

12.《秒杀多线程第十二篇 多线程同步内功心法——PV操作上

13.《秒杀多线程第十三篇 多线程同步内功心法——PV操作下》即将发布

14.《秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock

15.《秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题

16.    《秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据

 

  

 

再后面文章还在草稿中,就暂时不列出目录了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128301.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • js/es6判断对象是否为空,并判断对象是否包含某个属性

    js/es6判断对象是否为空,并判断对象是否包含某个属性js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便。比如:1、把对象通过JSON.stringify转为字符串,再判断字符串是否等于”{}”2、forin循环,判断key是否存在3、jq的方法es6已经帮我们很好的解决了此类问题。es6针对对象增加了3个新方法(数组也有):(1)、Object.keys:返回一个数组,成员是参数对象自身的(不含继承…

  • storm源代码分析—Transactional spouts

    storm源代码分析—Transactional spouts

  • 几道web前端练习题目

    在HTML语言中,以下哪个属性不是通用属性?A]<class>B]<title>C]<href>D]<style>在线练习:http://hove

    2021年12月28日
  • 775针最好的cpu有哪些_1156针cpu是几代

    775针最好的cpu有哪些_1156针cpu是几代针脚也就是cpu的接口,是cpu和主板的连接件,不同的针脚代表不同cpu的类型,现在775针cpu已经成为Intel桌面CPU的标准接口。今天就为大家简单介绍775针cpu以及它们同系列性能排行最好的一款吧。一、775针的cpu的有哪些?主要有奔腾4、赛扬D,奔腾D8、D9系列,奔腾E2、奔腾E5、E6,酷睿E4、E6、E7、E8,酷睿Q6、Q8、Q9。奔腾4采用LGA775接口的有5和6系列,经…

  • phpstorm激活码2022(注册激活)

    (phpstorm激活码2022)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • imwrite函数 matlab_imwrite

    imwrite函数 matlab_imwrite一、imread直接读取图片数据。示例一下面这段代码读取一张图片并显示出来filename=’e.bmp’;imgRgb=imread(filename);%读入一幅彩色图像imshow(imgRgb);%显示彩色图像示例二下面这段代码把24位真彩色位图转为灰度图像filename=’e.bmp’;imfinfo(filename)%查看图像文件信息imgRgb=imr…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号