您的位置:程序门 -> java -> j2se / 基础类



一个多线程的问题,急!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个多线程的问题,急![已结贴,结贴人:]
发表于:2007-07-23 15:49:57 楼主
两个线程间的通信比较简单,现在要是多于两个的多线程间的通信,那怎么办呢?求高手指点!!

问题一:现在有4个线程,要求任一线程能接收到其它线程的某些事件(如发送一个消息)。

就像这样:     t1   sent   a   message   to   t2

                                    t3   sent   a   message   to   t2

                                    t4   sent   a   message   to   t1

                                    t2   sent   a   message   to   t4


问题二:产生第五个线程   t5,能接收到前面4个线程的事件。这个事件就是,前面4个线程中的任意一个发送一个整型数字,此时线程   t5   能监听并得到这个数字,同进产生对应的子线程。

就像这样:

                      t1   发送一个数字   3,此时   t5   产生   3   个子线程,然后显示  

                                                                  t1   send   a   number     to   t5   :   3

                                                                  t51   is   running...

                                                                  t52   is   running...

                                                                  t53   is   running...


                      t3   发送一个数字   2,此时   t5   产生   2   个子线程,然后显示  

                                                                  t3   send   a   number     to   t5   :   2

                                                                  t51   is   running...

                                                                  t52   is   running...

                                                                 

万分感谢!急求解答!

                             
发表于:2007-07-23 16:11:111楼 得分:0
t1,t2,t3,t4
while(true){
          synchronized(yourobject){
                while     yourobject.flag   ==   false
                              yourobject.wait
                }
                yourobject.number   =   ?
                yourobject.flag   =   false;
                yourobject.notifyall()
          }
}

t5:
while(true){
          synchronized(yourobject){
                while     yourobject.flag   ==   true
                              yourobject.wait
                }
                ?   =   yourobject.number
                create   and   start   new   thread....
                yourobject.flag   =   ture;
                yourobject.notifyall()
          }
}

please   try   it   to   your   best   ability!!
发表于:2007-07-25 15:34:002楼 得分:0
试了一下,感觉好像不行。。。
可能本人是太笨了,领悟不出其中的道理。。。

我今天还得到一个网友的答复,说用“管道流”?!!感觉这个跟“管道流”没什么关系吧?是不是我要继续看书啊?


快速检索

最新资讯
热门点击