最新java线程池源码解析优质
每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。大家想知道怎么样才能写一篇比较优质的范文吗?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。
java线程池源码解析篇一
java对象实例的锁一共有四种状态:无锁,偏向锁,轻量锁和重量锁。原始脱离框架的并发应用大部分都需要手动完成加锁释放,最直接的就是使用synchronized和volatile关键字对某个对象或者代码块加锁从而限制每次访问的次数,从对象之间的竞争也可以实现到对象之间的'协作。但是这样手动实现出来的应用不仅耗费时间而且性能表现往往又有待提升。
一、线程池结构图
二、示例
定义线程接口
6public class mythread extends thread {@overridepublicvoid run() {n(tthread().getname() + "正在执行");}}
1:newsinglethreadexecutor
10executorservice pool = executors. newsinglethreadexecutor();thread t1 = new mythread();thread t2 = new mythread();thread t3 = new mythread();//将线程放入池中进行执行e(t1);e(t2);e(t3);//wn();
输入结果:
3pool-1-thread-1正在执行pool-1-thread-1正在执行pool-1-thread-1正在执行
2:newfixedthreadpool
13executorservice pool = edthreadpool(3);thread t1 = new mythread();thread t2 = new mythread();thread t3 = new mythread();thread t4 = new mythread();thread t5 = new mythread();//将线程放入池中进行执行e(t1);e(t2);e(t3);e(t4);e(t5);wn();
输入结果:
4pool-1-thread-1正在执行pool-1-thread-2正在执行pool-1-thread-1正在执行pool-1-thread-2正在执行
3 :newcachedthreadpool
14executorservice pool = hedthreadpool();thread t1 = new mythread();thread t2 = new mythread();thread t3 = new mythread();thread t4 = new mythread();thread t5 = new mythread();//将线程放入池中进行执行e(t1);e(t2);e(t3);e(t4);e(t5);//wn();
输入结果:
5pool-1-thread-2正在执行pool-1-thread-4正在执行pool-1-thread-3正在执行pool-1-thread-1正在执行pool-1-thread-5正在执行
4 :scheduledthreadpoolexecutor
14scheduledexecutorservice pool = eduledthreadpool(2);leatfixedrate(new runnable() {//每隔一段时间就触发异常 @override public void run() { //throw new runtimeexception(); n("================"); }}, 1000, 2000, econds);leatfixedrate(new runnable() {//每隔一段时间打印系统时间,证明两者是互不影响的 @override public void run() { n("+++++++++++++++++"); }}, 1000, 2000, econds)
s("content_relate");【java线程池框架解析方法】相关文章:
1.
什么是java线程池框架
2.java 5线程池使用
3.java中通用的线程池实例代码
4.java多线程之线程间的通信方式解析
5.java单线程多线程的实现与方法
6.java多线程介绍
7.java多线程教程
8.java 集合框架