1最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。1.JAVA多线程实现方式JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程...
分类:
编程语言 时间:
2014-08-26 21:18:26
阅读次数:
273
Executor框架将工作单元划分为任务,即任务是逻辑上的工作单元,而线程是任务异步执行的机制。Runnable是任务的一个抽象,并且理想状态下任务是独立的执行,但是Runnable的run( )不能返回一个结果或者抛出一个受检查的异常,这与我们有些实际任务是不相符的。在通过线程或者executor执行Runnable任务中,不仅仅是不能返回任务的执行结果,有时我们希望可以控制某个任务,或取消或终止,但在executor中一旦提交任务,我们将很难单一的控制任务的生命周期,虽然ExecutorService扩...
分类:
编程语言 时间:
2014-08-26 15:30:36
阅读次数:
283
最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、F...
分类:
编程语言 时间:
2014-08-21 19:46:05
阅读次数:
283
1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口...
分类:
编程语言 时间:
2014-08-21 00:14:33
阅读次数:
322
import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
/**
?*?Created?by?alpha?on?14-8-15.
?*/
public?class?Main?{
????private?static?final?int?TIM...
分类:
编程语言 时间:
2014-08-16 01:12:49
阅读次数:
349
AbstractExecutorService对ExecutorService的执行任务类型的方法提供了一个默认实现。这些方法包括submit,invokeAny和InvokeAll。注意的是来自Executor接口的execute方法是未被实现,execute方法是整个体系的核心,所有的任务都是在...
分类:
编程语言 时间:
2014-08-13 18:23:26
阅读次数:
305
concurrent包中Executor接口的主要类的关系图如下:Executor接口非常单一,就是执行一个Runnable的命令。public interface Executor { void execute(Runnable command);}ExecutorService接口扩展了E...
分类:
编程语言 时间:
2014-08-13 17:44:56
阅读次数:
220
本文假设您已经了解一般并行编程知识,了解Java concurrent部分如ExecutorService等相关内容。
虽说是Java的ForkJoin并行框架,但不要太在意Java,其中的思想在其它语言环境也是同样适用的。因为并发编程在本质上是一样的。就好像如何找到优秀的Ruby程序员?其实要找的只是一个优秀的程序员。当然,如果语言层面直接支持相关的语义会更好。
引言
...
分类:
其他好文 时间:
2014-08-12 13:46:34
阅读次数:
332
在JDK中任务就是一个Runnable或Callable对象,线程是一个Thread对象。任务运行在单个线程或者是线程池ExecutorService中。我们知道,让线程死亡的方式有2种:正常完成和未捕获的异常。如果想让任务结束,也是只有这2种方式。...
分类:
编程语言 时间:
2014-08-07 23:17:24
阅读次数:
294
package concurrency;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Storage { private int capacity; ...
分类:
编程语言 时间:
2014-08-05 10:47:39
阅读次数:
322