黑马程序员技术交流社区
标题:
多线程同步???
[打印本页]
作者:
崔朋朋
时间:
2012-9-13 17:58
标题:
多线程同步???
本帖最后由 崔朋朋 于 2012-9-13 18:00 编辑
一提到 线程同步问题 我们经常回想到
(1) synchronized
(2) wait,notify,notifyAll
一般都是用来两个线程保持同步
但朋友给我说的 这道题我想了半天却 写不出来, 三个线程的同步?
题目如下:
有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC…
作者:
马睿
时间:
2012-9-13 18:36
思路如下:
创建3个线程A,B,C线程类
线程类都建立一个public static boolean flag ,注意!!除了A线程初始化flag为ture其他都为false
在打印外面增加
wihle ( count <= 10 )
{
if(线程对象.flag)
{
打印线程对象名字(比如此范例打印的是A)
然后将线程成员flag改变:
对象A.flag = false;
对象B.flag = ture;
count++;
}
}
让3个线程并发,将以上代码加入同步代码块,ABC抢夺资源,但是由于只有A.flag为true所以,只有A可以线执行,然后接着是B,接着是C
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2