黑马程序员技术交流社区

标题: 求大神,求算法 [打印本页]

作者: jonn    时间: 2013-2-26 20:40
标题: 求大神,求算法
多线程并发中,如何执行完子线程后再执行main线程?求算法,求思路
1.不能用Threed方法 join() ,即是用了,没实际意义,join()子线程执行顺序变了,不存在多线程并发概念
2.不能用 java.util.concurrent.*; 其包中所有辅助类来操作,这里只求个好的线程计数器算法
3.明确算法思路,满意的有奖励....{:soso_e120:}
作者: 陈圳    时间: 2013-2-26 20:53
我在JDK1.6中没有发现 java.util.concurrent这个类...
既然不能用,估计用他就能解决,那你去看下他的源码,借鉴下呗.
作者: 陈圳    时间: 2013-2-26 21:00
本帖最后由 陈圳 于 2013-2-26 21:08 编辑

我想下...如果lock在不在concurrent这个包类呢?
我们可以这样设想下,使用synchronized(类名.class)在主函数内放一把锁,其他进程进了run方法后,取得了这把锁,然后进去执行了.
执行完后,主线程困在这个while()循环中,空等待,然后其他线程干完后,传个break;让他出去,这样行不行?
while(true)
{//主线程滞停区
    synchronized()
    {}
}
作者: jonn    时间: 2013-2-26 21:08
陈圳 发表于 2013-2-26 21:00
你看这样符合要求么?...没看完题....

不存在多线程并发的呀,线程启动好歹至少得1000个吧,不过谢谢你了...
作者: 陈圳    时间: 2013-2-26 21:09
赵文 发表于 2013-2-26 21:08
不存在多线程并发的呀,线程启动好歹至少得1000个吧,不过谢谢你了...

我改了,你再看一下行不行....我上面的回复
作者: jonn    时间: 2013-2-26 21:22
陈圳 发表于 2013-2-26 21:00
我想下...如果lock在不在concurrent这个包类呢?
我们可以这样设想下,使用synchronized(类名.class)在主函数 ...

怎么确实其他所有子线程在某一刻执行完,无法明确传一个break给mian线程的同步代码块




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2