Thread 线程池:

当使用多个较短存活期的线程有利时,运用线程池技术可以发挥作用。运用这一技术时,不是为每个任务创建一个全新的线程,而可以从线程池中抽出线程,并分配给任务。
当线程完成任务后,再把它放回到池中,并等待另一次分配。

优点:

线程池节省了虚拟机为每项短期工作创建全新线程的工作量。另外,它使得与线程的启动以及消亡后的清理相关的开销最小。创建一个线程池后,可以在不同的任务中循环使用池是的单个线程。
通过线程池技术,可以减少反应的时间,因为线程已经得以构建,并已经启动,只是等待下一个任务而已。

单线程池:newSingleThreadExecutor()

可变大小线程池:newCachedThreadPool()

可延迟线程池:newScheduledThreadPool(int corepoolsize)

/**
* 线程池中如果线程大小大于线程池数,则线程多的处于等待状态,当线程池中的线程结束后才会运行多余的线程
*/
public class ThreadPoolTest {
public static void main(String[] args){
ExecutorService pool= Executors.newFixedThreadPool(2);//创建2个固定大小的线程池
pool.execute(new Runnable() {
@Override
public void run() {
int i=0;
while (i<5){
i++;
System.out.println("线程1");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
int i=0;
while (i<5){
i++;
System.out.println("线程2");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
int i=0;
while (i<5){
i++;
System.out.println("线程3");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
}

最新文章

  1. GUI 下
  2. 【leetcode】Word Break II
  3. git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用
  4. 彻底解决Spring MVC 中文乱码 问题
  5. Java中的Enum的使用与分析
  6. bootstrap的滚动监听
  7. Qt Style Sheets Examples(官方例子目录,很全)
  8. win7虚拟机起不来,报错transport vmdb error -44 message the vmware authorization
  9. A*算法的C语言实现
  10. uva 1534 - Taekwondo(dp+馋)
  11. AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】
  12. CodeForces 626D Jerry&#39;s Protest
  13. vue.js事件,属性,以及交互
  14. [Luogu2991][USACO10OPEN]水滑梯Water Slides
  15. Luogu CF451E Devu and Flowers 题解报告
  16. 软件工程_4th weeks
  17. OpenResty编译安装
  18. indexOf实现引申出来的各种字符串匹配算法
  19. vncviewer 通过ipv6连接
  20. JS修改属性,六种数据类型

热门文章

  1. Oracle Like、Instr以及正则表达式
  2. JSON格式自动解析遇到的调用方法问题.fromJson() ..readValue()
  3. 总结JavaScript常用数组操作方法,包含ES6方法
  4. Python 初始—(列表)
  5. Linux nohup 关闭终端的时候,程序依然能在后台运行( linux重定向及nohup不输出的方法)
  6. httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例
  7. iOS常用控件-UITableViewCell
  8. python使用网易邮箱发邮件
  9. cocos2d-x 3.0环境配置(转)
  10. c语言printf()输出格式大全(转载)