「java让线程等待」java线程等待时间长
今天给各位分享java让线程等待的知识,其中也会对java线程等待时间长进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java多线程相互等待
1、存在处以业务逻辑类,存在map,初始化。
2、存在线程池 最大200,ThreadFactory可以默认
3、单线程处理ip的类,构造方法包含是需参数Map,
4、外部循环 调用线程池,生成线程 传参 map 和当前循环次数
5、线程处理完ip后,将外部传来的循环次数做key,结果做value插入map,唤醒主线程判断map中的数量是否==需处理的ip的数量,选择跳出或继续等待。
Java如何等待子线程执行结束
先调用
shutdown
在调用
isTerminated
例:
/*
* 采用线程池开启多个子线程,主线程等待所有的子线程执行完毕
*/
public static void moreThread() {
try {
int threadNum = 0;
for (int i = 0; i 10; i++) {
threadNum++;
final int currentThreadNum = threadNum;
exe.execute(new Runnable() {
@Override
public void run() {
try {
System.out.println("子线程[" + currentThreadNum + "]开启");
Thread.sleep(1000*10);
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println("子线程[" + currentThreadNum + "]结束");
}
}
});
}
System.out.println("已经开启所有的子线程");
exe.shutdown();
System.out.println("shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。");
while(true){
if(exe.isTerminated()){
System.out.println("所有的子线程都结束了!");
break;
}
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println("主线程结束");
}
}
在java中同时起多个线程,然后怎么让多个线程进入等待状态?
class MyThread extends Thread {
static Object lock = new Object();
public void run() {
// TODO Auto-generated method stub
}
public void toWait() {
synchronized(lock){
try {
lock.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void toNotifyAll(){
synchronized(lock){
lock.notifyAll();
}
}
}
//让线程对象在run方法中调用toWait使其等待,调用静态方法toNotifyAll唤醒所有线程
java callable 怎么让主线程等待
在你的
主线程
中用一个JOIN的方法,你要等待谁,就用谁调用,比如,你要等待线程A结束,就用A.JOIN();这样就可以了。记住哦,这条语句写在哪个线程里,哪个线程就要等待调用这个方法的其他线程。就是说,你在主线程里写了这条语句,那么主线程就要等待线程A执行完后,主线程才会执行
关于java让线程等待和java线程等待时间长的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-13,除非注明,否则均为
原创文章,转载请注明出处。