silence_dai/
共53个网摘 [
1 2 ]
下一页 |
访问silence_dai的个人空间
silence_dai收录,使用标签:C++, thread,时间:2006-11-3 12:46:19 | 相关网摘,我也收藏
为每个哲学家使用POSIX线程(pthread)建立独立的线程(有独立的id),用互斥(叉子其他哲学家使用时,另一个哲学家不能使用)和条件(哲学家饿了才尝试去得到叉子,得到相邻的左右两把叉子才能进餐)来分到叉子。
关键事件:
1. 哲学家饿了就要尝试去得到叉子。
2. 哲学家得到相邻的左右两把叉子才可以进餐
3. 吃完了就要释放两把叉子
每个事件发生就打印一行。并用gettimeofday()显示毫秒 。
A. 用'X' 表示哲学家在进餐
B. 用'O' 表示哲学家在思考
C. 用'!' 表示哲学家饿了
例子:
1 2 3 4 5
0 ms: O O O O O
95 ms: ! O O O O
95 ms: X O O O O
214 ms: X O O O !
327 ms: X O O ! !
328 ms: X O O X !
444 ms: O ! O O !
444 ms: O X O O X
(注意:肯定不会有两个X出现在相邻的列中)
程序在运行“50次成功进餐”发生后停止。
哲学家在“进餐”和“思考”的“时间周期”是一个0.1到0.5之间的随机数字。
5个哲学家都从思考开始。
可以考虑使用usleep()
还可以使用旗语(semaphore)的 P() 和 V()来解决互斥、
http://community.csdn.net/Expert/topicview.asp?id=5079026
silence_dai收录,时间:2006-11-1 22:57:51 | 相关网摘,我也收藏
几道面试题求解 大家说完答案后说说为什么阿
面试例题1:以下创建了几个对象______。
String A,B,C
A = "a";
B = "b";
A = A + B;
StringBuffer D = new StringBuffer("abc");
D = D.append("567");
A 4 B 3 C 5 D 6
2以下程序错误的是______
A. short s=1;s=s+1;
B. short s=1;s+=1;
3哪个方法不改变线程的状态______
A start() B run() C isAlive() D sleep()
4如何实现java的序列化______(这道题没看懂)
A .page B request C session D application
5在Java程序的异常处理中,总是表示执行的语句是______
A final B finally C finalize D都不是
6List.Map.Set等接口中,不能包含重复元素的接口是______
A List B Map C Set D都不是
7 以下______断代马不会被执行
try{
code1......
Return;
code2......
}catch(Exception e)
{
code3
}
finally
{
code4
}
A code1 B code2 C code3 D code4
http://community.csdn.net/Expert/topicview.asp?id=5122956
共53个网摘 [
1 2 ]
下一页