Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
其他好文 时间:
2014-09-16 10:34:00
阅读次数:
193
ExecutorService接口继承了Executor接口,定义了一些生命周期的方法Java代码publicinterfaceExecutorServiceextendsExecutor{voidshutdown();ListshutdownNow();booleanisShutdown();bo...
分类:
其他好文 时间:
2014-09-16 01:30:49
阅读次数:
279
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
其他好文 时间:
2014-09-15 19:04:59
阅读次数:
212
线程池负责管理工作线程,包含一个等待执行的任务队列。线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象。java.util.concurrent.executors 提供了 java.util.concurrent.executor 接口的一个Java...
分类:
编程语言 时间:
2014-09-04 14:41:29
阅读次数:
243
概述首先来说一说java连接池中常用到的几个类:Executor,ExecutorService,ScheduledExecutorServiceExecutor执行已经提交的Runnable任务对象。此接口提供了将任务提交和任务执行分离的机制。ExecutorService它是Executor的子...
分类:
编程语言 时间:
2014-08-27 16:24:07
阅读次数:
212
ava多线程并发下大多围绕着执行任务进行管理的,所谓任务就是抽象的、离散的工作单元。这样将工作分为任务的创建和任务的执行,而且理想状态下任务是独立的活动,它的工作不依赖于其它任务的状态、结果和边界效应。任务的独立有利于并发性,如得到相应的资源,从而可以并行的执行。
任务的执行策略:顺序执行、每任务每线程...
分类:
其他好文 时间:
2014-08-26 19:46:36
阅读次数:
197
Executor框架将工作单元划分为任务,即任务是逻辑上的工作单元,而线程是任务异步执行的机制。Runnable是任务的一个抽象,并且理想状态下任务是独立的执行,但是Runnable的run( )不能返回一个结果或者抛出一个受检查的异常,这与我们有些实际任务是不相符的。在通过线程或者executor执行Runnable任务中,不仅仅是不能返回任务的执行结果,有时我们希望可以控制某个任务,或取消或终止,但在executor中一旦提交任务,我们将很难单一的控制任务的生命周期,虽然ExecutorService扩...
分类:
编程语言 时间:
2014-08-26 15:30:36
阅读次数:
283
1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口...
分类:
编程语言 时间:
2014-08-21 00:14:33
阅读次数:
322
Nimbus :负责资源分配和任务调度, 把任务相关的元信息写入Zookeeper 相应目录。
Supervisor :负责接受nimbus 分配的任务,启动和停止属于自己管理的worker 进程。
Worker :运行具体处理组件逻辑的进程。
Executor :运行spout/bolt 的线程
Task : worker 中每一个spout/bolt 的线程称为一个task.
Topology : storm 中运行的实时应用程序,消息在各个组件间流动形成逻辑上的拓扑结构。
Spout :在一个topo...
分类:
其他好文 时间:
2014-08-20 12:39:12
阅读次数:
171