本文可作为传智播客《张孝祥-Java多线程与并发库高级应用》视频的学习记录。
为什么需要并发池
之前写并发的时候
new Thread(new Runnable(){
public void run{
//....
}
}).start();没有什么问题呀,为什么需要并发池呢?
我们拿tomcat来举个例子。每次我们对服务器做一个请求,tomcat就得分出一个线...
分类:
编程语言 时间:
2015-01-19 19:09:52
阅读次数:
260
java中的线程池是非常重要的,它可以节省资源开销,从而提升程序的性能。向Tomcat等一些web服务器都必须用到线程池。java5中为我们提供了一些应用线程池的API,下面的代码将详解其用法。
package hxl.insist;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Exe...
分类:
编程语言 时间:
2015-01-18 09:22:12
阅读次数:
185
我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用。
之前我一直习惯自己维护一个list保存submit的callable task所返回的Future对象。
在主线程中遍历这个list并调用Future的get()方法取到Task的返回值。
但是,我...
分类:
其他好文 时间:
2015-01-17 19:30:03
阅读次数:
204
构建一个线程池,可以在池中创建对个线程,用这个线程池去处理事情,会根据实际情况有线程池中的线程分配处理。
public class TestThreadPool {
public static void main(String[] args) {
//ExecutorService ec = Executors.newFixedThreadPool(3);//固定线程数
//E...
分类:
编程语言 时间:
2015-01-17 18:05:18
阅读次数:
196
最近研究了下ThreadPoolExecutor,发现还是有些需要琢磨的地方。先把JDK1.6文档搬过来。一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用
Executors工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行..
分类:
编程语言 时间:
2015-01-15 01:52:16
阅读次数:
262
1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 import java.util.concurrent.Semaphore; 4 5 public class Th.....
分类:
编程语言 时间:
2015-01-09 19:18:46
阅读次数:
260
闲话不多说,直接上代码。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MyThreadPool {
private ExecutorService exe;
private static final int POOL_SIZE = 4;...
分类:
编程语言 时间:
2015-01-07 09:25:34
阅读次数:
1418
需要实现一个多线程并发的业务场景,启动若干子线程,最后要所有子线程运行结束才结束。(类似 .NET 里的 Task WaitAll )
Java 中的 ExecutorService 多线程编程模型提供这样一个机制,通过代码来介绍一下。...
分类:
编程语言 时间:
2015-01-01 23:52:33
阅读次数:
265
java 1.5 concurrent 工具包中提供了五类线程池的创建:
ExecutorService executor=Executors.newCachedThreadPool();
ExecutorService cacheExecutor=Executors.newCachedThreadPool(new TestThreadFactory());
ExecutorS...
分类:
编程语言 时间:
2014-12-28 00:34:01
阅读次数:
463
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.Ca...
分类:
其他好文 时间:
2014-12-26 10:57:19
阅读次数:
155