当前位置: 技术问答>java相关
如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
来源: 互联网 发布时间:2015-04-08
本文导语: fire,help... | 哈 你真笨 你不管它它就顺序执行了轧!!!!哈 | 如果这样作是因为要同步操作某一资源,你可以用synchronized控制来实现; 如果必需照你所说的,可以用resume()...
fire,help...
|
哈 你真笨 你不管它它就顺序执行了轧!!!!哈
|
如果这样作是因为要同步操作某一资源,你可以用synchronized控制来实现;
如果必需照你所说的,可以用resume()和suspend()来实现:
...
threadapplicationrun = new ApplicationRunThread(threads, appName) ;
threadapplicationrun.start() ;
this.suspend();//挂起当前线程
...
然后在ApplicationRunThread类中run方法最末一句是本类(调用ApplicationRunThread实例)XXXXX.resume();//恢复挂起的线程
如果必需照你所说的,可以用resume()和suspend()来实现:
...
threadapplicationrun = new ApplicationRunThread(threads, appName) ;
threadapplicationrun.start() ;
this.suspend();//挂起当前线程
...
然后在ApplicationRunThread类中run方法最末一句是本类(调用ApplicationRunThread实例)XXXXX.resume();//恢复挂起的线程
|
JDK已经不推荐用resume()和suspend()了!很容易造成死锁。
秩序把你要各个线程排队执行的代码放到
synchronized
{
...
}
块里就行了。
秩序把你要各个线程排队执行的代码放到
synchronized
{
...
}
块里就行了。
|
利用synchronized,在它中利用wait()和notify()方法可以实现