黑马程序员技术交流社区

标题: 多线程同步??? [打印本页]

作者: 崔朋朋    时间: 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