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 |
|
|
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 | |
r******d 发帖数: 308 | 14 这个很好很强大。。。。要是都弄清楚了c#面试应该没有问题了, 不过我看了半天才
发现原来我只看完了part 1..... |
n********p 发帖数: 708 | |
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 | |
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++的答案
|
|
|
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 是问机制还是函数呢... : 你看的是什么书啊? 我也去看看, 呵呵
|
|
|
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的时候。
|