导航:首页 > 编程语言 > java线程判断

java线程判断

发布时间:2022-08-07 22:21:47

A. java 中怎么判断某一线程是否运行

可以调用 Thread.isAlive() 判断, 当然也可以设置一个标记, 在那个线程结束之前设置标记。
/**
* Tests if this thread is alive. A thread is alive if it has
* been started and has not yet died.
* @return <code>true</code> if this thread is alive;
* <code>false</code> otherwise.
*/
Thread.isAlive()

B. Java如何判断线程池所有任务是否执行完毕

给你一个例子参考下

importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;

publicclassTest{

publicstaticvoidmain(Stringargs[])throwsInterruptedException{
ExecutorServiceexe=Executors.newFixedThreadPool(50);
for(inti=1;i<=5;i++){
exe.execute(newSubThread(i));
}
exe.shutdown();
while(true){
if(exe.isTerminated()){
System.out.println("结束了!");
break;
}
Thread.sleep(200);
}
}
}

上面是主线程的代码,创建了一个能同时执行2个线程的线程池,并投入5个线程,当5个线程都执行完毕后打印---“结束了!”字符串。
exe.shutdown();该方法在加入线程队列的线程执行完之前不会执行。

exe.isTerminated();当shutdown()或者shutdownNow()执行了之后才会执行,并返回true。

在上面的代码中必须有exe.isTerminated()的判断,否则在投入5个线程到线程池后会直接打印:“结束了”。不能达到我们想要的效果。

通过while(true)循环判断exe.isTerminated()重生之大文豪的值,为了防止过多的判断浪费资源,可设置线程睡眠Thread.sleep(200);

正是由于这个睡眠,所以当所有线程池中的线程都执行完后,有可能延迟200ms才执行"结束了"语句。这个参数越小延迟越小,结果越准确。

C. java判断线程是否存活有几种方法

void shutdown()

启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用。
抛出:

SecurityException - 如果安全管理器存在并且关闭,此 ExecutorService 可能操作某些不允许调用者修改的线程(因为它没有保持RuntimePermission("modifyThread")),或者安全管理器的 checkAccess 方法拒绝访问。
isTerminated
boolean isTerminated()

如果关闭后所有任务都已完成,则返回 true。注意,除非首先调用 shutdown 或 shutdownNow,否则 isTerminated 永不为 true。
返回:

如果关闭后所有任务都已完成,则返回 true

D. JAVA 如何检查线程是否执行

可以使用类变量判断 。示例如下:

classA{
staticbooleanaStop=false;
staticvoidtest(){
newAThread().start();
while(!aStop){
}
System.out.println("AThreadstoped.");
}
classAThreadextendsThread{
publicvoidrun(){
/////////////////////////
aStop=true;
}
}
}

E. java 判断是不是同一个线程

每个线程都会由系统分配唯一的线程标识(线程id),一般是调用.get什么来获取id,具体方法查api文档,这种拿来主义的习惯不好,这个查一下api就知道,一两分钟的事

F. 急求!如何判断java 线程相等,用equals还是==,举个例子


equals
,判断线程是否相等,本质上是判断两个
Thread
的变量是否相等,而在Java中,每一个线程都只有唯一一个Thread
的对象,所以需要使用
equals。

G. java 如何判断一个线程结束

线程结束时等待也就结束了
------解决方案--------------------------------------------------------
waitforsingleobject当然可以。
或者设一全局变量,线程结束就将其置为某值。在别处读取该值,就可以判断线程是否结束了。
------解决方案--------------------------------------------------------
wait_object_0
表示这个线程已经退出了,wait_timeout是这个线程在此函数返回时候还没退出,但是设置的等待时间已经到了,wait_abandoned是所等待的对象是mutex而非thread,

H. java怎么判断一个线程是否在运行状态

不建议
强制关闭
有时候强制关闭会抛出异常
或者根本关闭不了
你在线程中设置个boolean
变量
flag
加个判断
你想关闭的时候控制一下
当flag==false的时候
就跳出线程
2楼的
如果线程不阻塞,你调用interrup方法根本不起作用
只有阻塞时才起作用

阅读全文

与java线程判断相关的资料

热点内容
现代钢琴教程pdf 浏览:25
客户端框架源码 浏览:210
python自动办公能干嘛 浏览:873
程序员追爱 浏览:252
程序员逻辑故事 浏览:768
加密icsot23i2c 浏览:713
你们有什么好的解压软件 浏览:607
常州空气压缩机厂家 浏览:241
安卓如何关闭app内弹出的更新提示 浏览:409
e4a写的app怎么装苹果手机 浏览:201
海立压缩机海信系 浏览:210
社保如何在app上合并 浏览:220
小米加密照片后缀 浏览:236
我的世界网易手机怎么创服务器 浏览:978
载入单页源码 浏览:930
阿里云服务器seo 浏览:777
海洋斗什么时候上线安卓 浏览:86
中行app如何查每日汇款限额 浏览:840
输入服务器sn是什么意思 浏览:725
sha1算法java 浏览:90