由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - multi thread复习请教
相关主题
embedded Linux ,面试了几次,都问这个问题了。不知道答案??关于java的疑惑
怎么才是 精简,准确呢? spinlock VS semaphore 的 区别??求问一道multithreading问题
Re: 别了,纽约 (转载)failed bloomberg phone interview
昨天onsite被问到的 multithreading 题目菜鸟请教多线程怎么学
一个multithread的小问题面试题: Multithreads 之间怎么通信?
有必要旁听 operating system design吗?一道多线程的面试题
想问一下那道H2O的多线程题谁给讲讲test-and-set怎么实现mutex?
问一道multithreading的题请教大牛用mutex lock实现reader writer lock
相关话题的讨论汇总
话题: monitor话题: mutex话题: thread话题: semaphore
进入JobHunting版参与讨论
1 (共1页)
n******2
发帖数: 47
1
大家都是怎么复习的,书? 网站?
paul198247 贴了这本书:Advanced Linux Programming
http://www.advancedlinuxprogramming.com/alp-folder
书很好,但感觉内容很多,有没有对于面试针对性更强一点材料?
M**u
发帖数: 10158
2
直接看看pthreads的文档

【在 n******2 的大作中提到】
: 大家都是怎么复习的,书? 网站?
: paul198247 贴了这本书:Advanced Linux Programming
: http://www.advancedlinuxprogramming.com/alp-folder
: 书很好,但感觉内容很多,有没有对于面试针对性更强一点材料?

n******2
发帖数: 47
3
this ?
POSIX Threads Programming - from Lawrence Livermore National Laboratory
https://computing.llnl.gov/tutorials/pthreads/

【在 M**u 的大作中提到】
: 直接看看pthreads的文档
M**u
发帖数: 10158
4
en

【在 n******2 的大作中提到】
: this ?
: POSIX Threads Programming - from Lawrence Livermore National Laboratory
: https://computing.llnl.gov/tutorials/pthreads/

n******2
发帖数: 47
5
thx!

【在 M**u 的大作中提到】
: en
s*****n
发帖数: 5488
6
估计C#要看C#专门的,async同步什么的
,够喝一壶的。
java 要看java 专门的。
c++:windows/linux各自一套。
加上operting system concepts上的有关章节看原理。

【在 n******2 的大作中提到】
: 大家都是怎么复习的,书? 网站?
: paul198247 贴了这本书:Advanced Linux Programming
: http://www.advancedlinuxprogramming.com/alp-folder
: 书很好,但感觉内容很多,有没有对于面试针对性更强一点材料?

n******2
发帖数: 47
7
呵呵,只攻C++/Linux了,否则受不了 。。。
r*********s
发帖数: 2157
8
我觉得multi thread的面试有点特别
电话面试不会有什么花样, 无非是几个概念 process/thread, deadlock, mutex/
semaphore, communication 等等
onsite如果碰到multi thread就比较麻烦, 如果你以前没有自己做过, 只是看了些书,
当场很容易stuck在那里.
B*******1
发帖数: 2454
9
Can you share some interview question of the multi thread?

,

【在 r*********s 的大作中提到】
: 我觉得multi thread的面试有点特别
: 电话面试不会有什么花样, 无非是几个概念 process/thread, deadlock, mutex/
: semaphore, communication 等等
: onsite如果碰到multi thread就比较麻烦, 如果你以前没有自己做过, 只是看了些书,
: 当场很容易stuck在那里.

k*******d
发帖数: 1340
10
Doc of Boost::thread is also good
And it is portable between Linux and Windows
相关主题
有必要旁听 operating system design吗?关于java的疑惑
想问一下那道H2O的多线程题求问一道multithreading问题
问一道multithreading的题failed bloomberg phone interview
进入JobHunting版参与讨论
r******d
发帖数: 308
11
我刚准备完multithread的内容, 写出来参考一下
需要弄懂得知识点(对于所有的语言):
Synchronization, deadlock, race condictions, mutual excusive(互相排斥),
semiphore(信号), signals, multiple processing vs multiple threading。
Communication between processes or computers, IPC, pipe。Mutex(互斥)
linux:
https://computing.llnl.gov/tutorials/pthreads/
unix:
http://beej.us/guide/bgipc/output/html/multipage/index.html
c#的我只是看了C# in a nutshell 里面multithread的部分, 觉得也够用了
到现在为止就面试了两个multithread, 都是c#的
大概问了这样几个问题
(1) 怎么样start 一个 thread
(2) 写一段代码实现multithread, 大概是有不同的client, 往一个server 发socket
message, message 里面包括ip, clientname等等。要求写server用multithread来处理
这些socket message.
我用了semiphore, 也不知道是不是最好的答案
(3) interlock是干什么的
(4) 一段代码, 用了asychronous delegates, 要给出运行的结果。
c*b
发帖数: 3126
12
semaphore, not semiphore, hehe

【在 r******d 的大作中提到】
: 我刚准备完multithread的内容, 写出来参考一下
: 需要弄懂得知识点(对于所有的语言):
: Synchronization, deadlock, race condictions, mutual excusive(互相排斥),
: semiphore(信号), signals, multiple processing vs multiple threading。
: Communication between processes or computers, IPC, pipe。Mutex(互斥)
: linux:
: https://computing.llnl.gov/tutorials/pthreads/
: unix:
: http://beej.us/guide/bgipc/output/html/multipage/index.html
: c#的我只是看了C# in a nutshell 里面multithread的部分, 觉得也够用了

o****p
发帖数: 34
13
如果是和微软有关的,推荐一个学习多线程的网址,
http://www.albahari.com/threading/
r******d
发帖数: 308
14
这个很好很强大。。。。要是都弄清楚了c#面试应该没有问题了, 不过我看了半天才
发现原来我只看完了part 1.....
n********p
发帖数: 708
15
mark~~~~~~~~~~~~
r******d
发帖数: 308
16
还好是笔试, 哈哈,没有暴馅, 多谢提醒

【在 c*b 的大作中提到】
: semaphore, not semiphore, hehe
r******d
发帖数: 308
17
今天又面了个新的multithread的问题
题目是:说说你对multithread的理解。 thread Synchronization 都有什么method.
我答的Synchronization有mutex 和semaphore 两种方式。在那解释了一堆。。。。
回来发现, 似乎linux的ptread里面有mutex, join 和 condition varibles....
有没有熟悉的同学帮忙确定下答案对不对?
都是c#毒害的, c#里面也有join, 我怎么就没有想起来呢。。。。 看来看的东西还是
得针对题目准备, 仔细想想Synchronization的方法很多, 思路都很简单, 但是不同
的os似乎归纳得不一样, 郁闷, 看来得准备个C#的答案和c++的答案
w*****8
发帖数: 38
18
有没有JAVA的?
d**e
发帖数: 6098
19
还有monitor,message passing.
java的synchronize key word好像是用monitor方法实现的。
我的理解mutex和semaphore应该是算同一样东西的。

【在 r******d 的大作中提到】
: 今天又面了个新的multithread的问题
: 题目是:说说你对multithread的理解。 thread Synchronization 都有什么method.
: 我答的Synchronization有mutex 和semaphore 两种方式。在那解释了一堆。。。。
: 回来发现, 似乎linux的ptread里面有mutex, join 和 condition varibles....
: 有没有熟悉的同学帮忙确定下答案对不对?
: 都是c#毒害的, c#里面也有join, 我怎么就没有想起来呢。。。。 看来看的东西还是
: 得针对题目准备, 仔细想想Synchronization的方法很多, 思路都很简单, 但是不同
: 的os似乎归纳得不一样, 郁闷, 看来得准备个C#的答案和c++的答案

d**e
发帖数: 6098
20
condition varibles好像是属于monitor里面的东西
join是什么?印象中是调用join函数后,主进程要等待,直到所有线程都完成才继
续。这个应该不能算是synchronization的吧?

【在 r******d 的大作中提到】
: 今天又面了个新的multithread的问题
: 题目是:说说你对multithread的理解。 thread Synchronization 都有什么method.
: 我答的Synchronization有mutex 和semaphore 两种方式。在那解释了一堆。。。。
: 回来发现, 似乎linux的ptread里面有mutex, join 和 condition varibles....
: 有没有熟悉的同学帮忙确定下答案对不对?
: 都是c#毒害的, c#里面也有join, 我怎么就没有想起来呢。。。。 看来看的东西还是
: 得针对题目准备, 仔细想想Synchronization的方法很多, 思路都很简单, 但是不同
: 的os似乎归纳得不一样, 郁闷, 看来得准备个C#的答案和c++的答案

相关主题
菜鸟请教多线程怎么学谁给讲讲test-and-set怎么实现mutex?
面试题: Multithreads 之间怎么通信?请教大牛用mutex lock实现reader writer lock
一道多线程的面试题请问C++ threading w/ lock free algorithms
进入JobHunting版参与讨论
r******d
发帖数: 308
21
message passing 怎么看起来是不同进程的通讯?
monitor 是指这个吗?
http://en.wikipedia.org/wiki/Monitor_%28synchronization%29
还得看看先....
你是不是作java的?

【在 d**e 的大作中提到】
: 还有monitor,message passing.
: java的synchronize key word好像是用monitor方法实现的。
: 我的理解mutex和semaphore应该是算同一样东西的。

r******d
发帖数: 308
22
是的, JOIN 是你说的那样
在c#里面join是一种synchronization的method.
pthread里面似乎也是.....

【在 d**e 的大作中提到】
: condition varibles好像是属于monitor里面的东西
: join是什么?印象中是调用join函数后,主进程要等待,直到所有线程都完成才继
: 续。这个应该不能算是synchronization的吧?

d**e
发帖数: 6098
23
对,是那个monitor。
我理解是,不管是不是进程间还是线程间,只要能同步就行了。message passing好像
是分布式系统同步比较多。

【在 r******d 的大作中提到】
: message passing 怎么看起来是不同进程的通讯?
: monitor 是指这个吗?
: http://en.wikipedia.org/wiki/Monitor_%28synchronization%29
: 还得看看先....
: 你是不是作java的?

d**e
发帖数: 6098
24
pthread里面的join也是这样。
不过可能是我表达不清。我的意思是说,如果问同步有哪些方法或方式,我觉得应该是
说哪些机制可以用来同步,而不是说这些机制里面的函数。
我看的那本书上主要提到的是semaphore/monitor/message passing,当然还有其它一
些,但说得不多。

【在 r******d 的大作中提到】
: 是的, JOIN 是你说的那样
: 在c#里面join是一种synchronization的method.
: pthread里面似乎也是.....

r******d
发帖数: 308
25
http://www.cc.gatech.edu/classes/AY2000/cs6210_spring/pthreads_tutorial.htm
在这个链接里面把synchronization分成
mutex / semaphore / condition variable (monitor) / rwlocks
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html#SYNCHRONIZATION
在这个链接里面把synchronization分成
mutex / joins / condition variable
所以可能本来就没有标准答案, 把知道的都写上去好了, 呵呵, 下次问到我就写
linux 的 synchronization包括
mutex / semaphore / condition variable (monitor) / joins / rwlocks
哈哈, 不过怀疑 monitor是不是java的一个概念? 因为我在pthread里面找不到, 还要
学习一下monitor
r******d
发帖数: 308
26
你说的很有道理哦, 那个题目问的是method, method 是问机制还是函数呢...
你看的是什么书啊? 我也去看看, 呵呵

【在 d**e 的大作中提到】
: pthread里面的join也是这样。
: 不过可能是我表达不清。我的意思是说,如果问同步有哪些方法或方式,我觉得应该是
: 说哪些机制可以用来同步,而不是说这些机制里面的函数。
: 我看的那本书上主要提到的是semaphore/monitor/message passing,当然还有其它一
: 些,但说得不多。

r******d
发帖数: 308
27
http://en.wikipedia.org/wiki/Monitor_%28synchronization%29
在上面链接里面, 把monitor 分成了mutex 和 wait and signaling. wait and
signaling 好像就是condition varibles
我不确定的是monitor是不是每次只能够有一个thread在用cpu(monitor)? 因为在上面
的那个链接里面有说at most one thread occupies the monitor at each time
请请问一下在你看的书里面monitor是不是每次只能一个一个线程在跑?

【在 d**e 的大作中提到】
: condition varibles好像是属于monitor里面的东西
: join是什么?印象中是调用join函数后,主进程要等待,直到所有线程都完成才继
: 续。这个应该不能算是synchronization的吧?

j*****u
发帖数: 1133
28
没看你的链接不过我觉得意思是:
monitor:只有一个thread能够拿到lock,其他threads被block
monitor跟mutex类似,区别是monitor更轻量级一点,mutex是kernal object,因此可以
interprocess
synchronization有很多种,不同语言有不同实现但方法大同小异,建议找一个语言仔细
看看
不同方法有不同的适用范围,通常越efficient的限制越大
比如volatile,Interlock,SpinLock等non-blocking的synchronization适用范围肯定没
有monitor广,同理monitor也不像mutex/semaphare可以interprocess同步

【在 r******d 的大作中提到】
: http://en.wikipedia.org/wiki/Monitor_%28synchronization%29
: 在上面链接里面, 把monitor 分成了mutex 和 wait and signaling. wait and
: signaling 好像就是condition varibles
: 我不确定的是monitor是不是每次只能够有一个thread在用cpu(monitor)? 因为在上面
: 的那个链接里面有说at most one thread occupies the monitor at each time
: 请请问一下在你看的书里面monitor是不是每次只能一个一个线程在跑?

j*****u
发帖数: 1133
29
不要把概念混淆
比如mutex和monitor、semaphore。。是对应的
Join只不过是block当然thread直到target thread结束

【在 r******d 的大作中提到】
: 今天又面了个新的multithread的问题
: 题目是:说说你对multithread的理解。 thread Synchronization 都有什么method.
: 我答的Synchronization有mutex 和semaphore 两种方式。在那解释了一堆。。。。
: 回来发现, 似乎linux的ptread里面有mutex, join 和 condition varibles....
: 有没有熟悉的同学帮忙确定下答案对不对?
: 都是c#毒害的, c#里面也有join, 我怎么就没有想起来呢。。。。 看来看的东西还是
: 得针对题目准备, 仔细想想Synchronization的方法很多, 思路都很简单, 但是不同
: 的os似乎归纳得不一样, 郁闷, 看来得准备个C#的答案和c++的答案

d**e
发帖数: 6098
30
我看的是这本书。
http://williamstallings.com/OS/OS5e.html
或者面试没太多限制,可能只要把这方面有关的东东拼命扯上去,管它是机制还是函数
,呵呵。

【在 r******d 的大作中提到】
: 你说的很有道理哦, 那个题目问的是method, method 是问机制还是函数呢...
: 你看的是什么书啊? 我也去看看, 呵呵

相关主题
FLAG rej/offer 求比较怎么才是 精简,准确呢? spinlock VS semaphore 的 区别??
MS Azure组面试Re: 别了,纽约 (转载)
embedded Linux ,面试了几次,都问这个问题了。不知道答案??昨天onsite被问到的 multithreading 题目
进入JobHunting版参与讨论
g*****k
发帖数: 623
31
there are lock and lock free algorithms.
lock algorithms usually use mutex, semaphore, conditional variables
while lock free algorithms use atomic operations, compare and swap,
compare and set, etc.

【在 r******d 的大作中提到】
: 今天又面了个新的multithread的问题
: 题目是:说说你对multithread的理解。 thread Synchronization 都有什么method.
: 我答的Synchronization有mutex 和semaphore 两种方式。在那解释了一堆。。。。
: 回来发现, 似乎linux的ptread里面有mutex, join 和 condition varibles....
: 有没有熟悉的同学帮忙确定下答案对不对?
: 都是c#毒害的, c#里面也有join, 我怎么就没有想起来呢。。。。 看来看的东西还是
: 得针对题目准备, 仔细想想Synchronization的方法很多, 思路都很简单, 但是不同
: 的os似乎归纳得不一样, 郁闷, 看来得准备个C#的答案和c++的答案

P********l
发帖数: 452
32
我的教训:要么别看,就说不懂;要么看仔细。特别是在onsite的时候。

【在 n******2 的大作中提到】
: 大家都是怎么复习的,书? 网站?
: paul198247 贴了这本书:Advanced Linux Programming
: http://www.advancedlinuxprogramming.com/alp-folder
: 书很好,但感觉内容很多,有没有对于面试针对性更强一点材料?

d**e
发帖数: 6098
33
我也有此感觉。现在都特后悔简历上提过多线程,虽然学OS时写过程序,
但因为就知一点皮毛,说也说不完整。

【在 P********l 的大作中提到】
: 我的教训:要么别看,就说不懂;要么看仔细。特别是在onsite的时候。
r******d
发帖数: 308
34
不过有些公司还是会问多线程的问题, 但是要求不是很高
稍微看一下还是可以回答的
虽然我以前的公司有用到多线程, 但是我简历上也没有强调一下, 往深处问几个问题
就心虚了。。。。

【在 P********l 的大作中提到】
: 我的教训:要么别看,就说不懂;要么看仔细。特别是在onsite的时候。
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教大牛用mutex lock实现reader writer lock一个multithread的小问题
请问C++ threading w/ lock free algorithms有必要旁听 operating system design吗?
FLAG rej/offer 求比较想问一下那道H2O的多线程题
MS Azure组面试问一道multithreading的题
embedded Linux ,面试了几次,都问这个问题了。不知道答案??关于java的疑惑
怎么才是 精简,准确呢? spinlock VS semaphore 的 区别??求问一道multithreading问题
Re: 别了,纽约 (转载)failed bloomberg phone interview
昨天onsite被问到的 multithreading 题目菜鸟请教多线程怎么学
相关话题的讨论汇总
话题: monitor话题: mutex话题: thread话题: semaphore