java吧 关注:1,239,776贴子:12,711,894
  • 22回复贴,共1

求大神指教线程同步问题。

只看楼主收藏回复

有一个主线程,十个子线程。首先主线程启动,这时要求主线程等待(阻塞)再同步执行十个子线程,得到一个值,再执行主线程打印输出。


IP属地:上海来自手机贴吧1楼2012-09-12 10:58回复


    IP属地:辽宁2楼2012-09-12 10:58
    回复
      记得有个神马通知,完全忘光了,太专注web了。。。


      IP属地:河南来自Android客户端3楼2012-09-12 11:00
      回复


        4楼2012-09-12 11:00
        回复


          5楼2012-09-12 11:01
          回复



            IP属地:北京6楼2012-09-12 11:01
            收起回复
              JAVA实现,因为不对主线程进行控制,那么这11个线程都是同步的,每次的的值都不一样。例如主线程wait之类的没办法知道10个子线程何时执行完所以被pass了。求其他方法


              IP属地:上海来自手机贴吧7楼2012-09-12 11:01
              回复
                不懂帮顶



                IP属地:江苏8楼2012-09-12 11:02
                回复
                  问题讲的在清楚点,得到一个值?这个值哪里来的,主线程等待十个子线程全部结束?十个子线程直接有没有合作?


                  IP属地:浙江来自手机贴吧9楼2012-09-12 11:09
                  回复
                    不清楚获取那个“值”的具体操作,只能揣测:
                    解决这个问题最简单的方式是使用,java.util.concurrent.CountDownLatch
                    稍微复杂一些的方式是使用,java.util.concurrent.BlockingQueue
                    更为复杂一些的方式是使用,java.util.concurrent.Callable,java.util.concurrent.Future
                    最最复杂的方式是...


                    10楼2012-09-12 11:13
                    收起回复
                      哦。整个程序是这样的。先随机生成1000个数存到数组里。然后在文本框里输入一个你要找的数,10个线程,每个线程找100个数,把找到的数的位置显示在另一个文本框中


                      IP属地:上海来自手机贴吧11楼2012-09-12 11:18
                      收起回复
                        countdownlatch不错啊。郁闷的是竟然在until里。


                        IP属地:上海来自手机贴吧12楼2012-09-12 11:23
                        回复
                          那就不需要等待了 直接比较线程返回的值 还需要等待吗?


                          13楼2012-09-12 12:00
                          回复