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
Double-checked Locking (DCL)用来在lazy initialisation 的单例模式中避免同步开销的一个方法。
下面是这么做的一个例子。
[java] view
plaincopy
public class MyFactory {
private static MyFactory instance;...
分类:
编程语言 时间:
2015-01-15 16:05:22
阅读次数:
297
java中的多线程 在java中要想实现多线程有两种手段一种是继续Thread类另外一种是实现Runable接口。 对于直接继承Thread的类来说代码大致框架是 ? 1 2 3 4 5 6 7 8 9 10 11 12 class 类名extends Thread{ 方法1; 方法2....
分类:
编程语言 时间:
2015-01-15 10:34:06
阅读次数:
343
最近研究了下ThreadPoolExecutor,发现还是有些需要琢磨的地方。先把JDK1.6文档搬过来。一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用
Executors工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行..
分类:
编程语言 时间:
2015-01-15 01:52:16
阅读次数:
262
1、==和equals的区别 null和""的区别
2、15个顶级Java多线程面试题及回答
(1)、线程中join的使用
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()...
分类:
编程语言 时间:
2015-01-14 21:25:47
阅读次数:
173
从事Java多线程开发的程序员来说,了解Java的线程池实现原理是必不可少的,以下将会结合Java线程池代码来说明它的实现原理,首先,我们要思考:线程池的表现形式线程池里面的线程什么时候创建线程池里面的线程什么时候结束或者该不该结束线程池的实现原理说道Java线程池就不得..
分类:
编程语言 时间:
2015-01-14 18:20:49
阅读次数:
340
CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。若在继续所有参与线程之前更...
分类:
编程语言 时间:
2015-01-13 19:57:38
阅读次数:
193
import java.util.List;import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;public class Test3 { public static void main(St...
分类:
编程语言 时间:
2015-01-13 08:58:31
阅读次数:
136