java线程池框架解析方法
来源:才华咖 本文已影响2.86W人
来源:才华咖 本文已影响2.86W人
Java对象实例的锁一共有四种状态:无锁,偏向锁,轻量锁和重量锁。原始脱离框架的并发应用大部分都需要手动完成加锁释放,最直接的就是使用synchronized和volatile关键字对某个对象或者代码块加锁从而限制每次访问的.次数,从对象之间的竞争也可以实现到对象之间的协作。但是这样手动实现出来的应用不仅耗费时间而且性能表现往往又有待提升。
一、线程池结构图
二、示例
定义线程接口
6public class MyThread extends Thread {@Overridepublicvoid run() {tln(entThread()ame() + "正在执行");}}
1:newSingleThreadExecutor
10ExecutorService pool = Executors. newSingleThreadExecutor();Thread t1 = new MyThread();Thread t2 = new MyThread();Thread t3 = new MyThread();//将线程放入池中进行执行ute(t1);ute(t2);ute(t3);//关闭线程池down();
输入结果:
3pool-1-thread-1正在执行pool-1-thread-1正在执行pool-1-thread-1正在执行
2:newFixedThreadPool
13ExecutorService pool = ixedThreadPool(3);Thread t1 = new MyThread();Thread t2 = new MyThread();Thread t3 = new MyThread();Thread t4 = new MyThread();Thread t5 = new MyThread();//将线程放入池中进行执行ute(t1);ute(t2);ute(t3);ute(t4);ute(t5);down();
输入结果:
4pool-1-thread-1正在执行pool-1-thread-2正在执行pool-1-thread-1正在执行pool-1-thread-2正在执行
3 :newCachedThreadPool
14ExecutorService pool = achedThreadPool();Thread t1 = new MyThread();Thread t2 = new MyThread();Thread t3 = new MyThread();Thread t4 = new MyThread();Thread t5 = new MyThread();//将线程放入池中进行执行ute(t1);ute(t2);ute(t3);ute(t4);ute(t5);//关闭线程池down();
输入结果:
5pool-1-thread-2正在执行pool-1-thread-4正在执行pool-1-thread-3正在执行pool-1-thread-1正在执行pool-1-thread-5正在执行
4 :ScheduledThreadPoolExecutor
14ScheduledExecutorService pool = cheduledThreadPool(2);duleAtFixedRate(new Runnable() {//每隔一段时间就触发异常 @Override public void run() { //throw new RuntimeException(); tln("================"); }}, 1000, 2000, ISECONDS);duleAtFixedRate(new Runnable() {//每隔一段时间打印系统时间,证明两者是互不影响的 @Override public void run() { tln("+++++++++++++++++"); }}, 1000, 2000, ISECONDS)
Java三大框架技术起源
java的三大主流框架是什么
java Runnable接口创建线程详解
使用Java编写GUI对话框教程讲解
Java日志系统框架的设计与实现
java dom4j解析xml用到的方法有哪些
java程序员学习路线详解
Java多线程的实现方式
详解java线程的生命周期
java框架知识点总结
Java的Struts框架中标签的使用方法
Java 集合框架
工程建设委托施工框架合同
GMAT作文框架解析
JAVA认证基础知识:Java文件解压缩示例
Java开发的异常框架
讲解Java编程中finally语句的使用方法
Java的Spring框架知识
java的三大主流框架
线上活动策划方案的基本思路及框架
Java多线程的用法介绍
简单地分析Java线程编程中ThreadLocal类的使用
零基础学习AJAX之AJAX简单框架
java的三大主流框架介绍
设置Java对话框字体的方法