package com.ijo.server;
/**
* 经测试分析当线程处于 运行和阻塞状态 isAlive都返回 true 依次类推当处于死锁也是一样的
* 故可以作为线程是否被正在使用的判断依据,是离线程池判断又进一步的了
* @author Administrator
*
*/
public class ThreadAliveDemo {
public static void main(String[] args) throws InterruptedException {
Work work = new Work();
System.out.println("start before " + work.isAlive());
work.start();
System.out.println("start after " + work.isAlive());
Thread.sleep(2000);
System.out.println("runing finshed " + work.isAlive());
work.notifyWork();
System.out.println("notify " + work.isAlive());
}
}
class Work extends Thread {
@Override
public void run() {
synchronized (this) {
try {
Thread.sleep(1000);
wait();
System.out.println("run .....");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void notifyWork() {
synchronized (this) {
notify();
}
}
}
运行结果:
start before false
start after true
runing finshed true
run .....
notify false
分享到:
相关推荐
C#判断线程池中所有的线程是否已经完成.doc
使用线程池管理多线程上传,包含了文件拆分,文件分片多线程上传,单文件上传。多线程执行任务等待管理。拒绝直接new Thread创建新线程导致的诸多问题
以下示例显示如何使用线程池。首先创建 ManualResetEvent 对象,此对象使程序能够知道线程池何时运行完所有的工作项。接着,尝试向线程池添加一个线程。如果添加成功,则添加其余的线程(本例中为 4 个)。然后...
简单实现线程池
C#线程池 所有线程运行完毕,只是测试代码,用来弄清楚,打印信息很明确,适合初学者
什么是线程池? 线程池是一个容纳多个线程的容器,线程池中的线程可以重复使用,无需反复创建线程而...3.提高线程的可管理性,根据系统的承受能力,调整线程池中工作线程的数目,防止消耗过多的内存,导致服务器死机
线程池的多线程并发控制技术研究.caj 线程池的多线程并发控制技术研究.caj 线程池的多线程并发控制技术研究.caj
NtQuerySystemInformation判断线程是否被挂起/判断线程状态
非阻塞线程池框架。利用该API提高代码线程效率,参考该代码更好管理线程,管理连接。
C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池相关资料C#线程同步及线程池...
多线程控制 线程池模式 HTTP线程 用户点击数量控制在一个线程池模式下
保证线程安全的Qt线程池使用,线程任务可以和其他线程通信,使用场景:频繁操作的I/O操作或是耗时操作。
java多线程,对多线程,线程池进行封装,方便使用
源码演示了多线程写法,主要是对比精易模块线程池,鱼刺模块线程池。@在人间。
C# 多线程 线程池 线程同步 单线程 线程的开始、挂起、恢复、结束、同步和异步
多线程控制、线程池模型、HTTP线程.rar
线程、多线程和线程池面试专题.线程、多线程和线程池面试专题.线程、多线程和线程池面试专题.线程、多线程和线程池面试专题.
而在使用【线程池】的时候:线程数一直保持线程池中的数量,无论你是否启动多线程进行运算,线程数量都不会变化,同时内存也不会有多大的变化,更不会不断的飙升!)。也许我的表达能力不足,反正大
创建多线程操作是非常昂贵的,如果每个运行时间非常短的操作,都创建多线程进行操作,可能并不能提高效率,反而降低... 如果你有非常多的执行时间非常短的操作,那么适合作用线程池来提高效率,而不是自行创建多线程。