-
Java 7之多线程线程池 - Callable和Future
Callable接口代表一段可以调用并返回结果的代码;Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。 Java...
2014-02-16 18:55 9647 -
Java 7之多线程线程池 - 线程池原理(2)
来看一下构造函数,如下: public ThreadPoolExecutor(int corePoolSize, int maximumPool...
2014-02-16 11:26 4546 -
Java 7之多线程线程池 - 线程池原理(1)
线程池能够复用线程,减少线程创建,销毁,恢复等状态切换的开销,提高程序的性能。一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。 java.util.concurrent...
2014-02-15 16:30 14780 -
Java 7之多线程并发容器 - LinkedBlockingQueue
LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于...
2014-02-15 15:50 5336 -
Java 7之多线程并发容器 - ArrayBlockingQueue
Java中有些多线程编程模式在很大程序上都依赖于Queue实现的线程安全性,所以非常有必要认识,首先来看一下接口定义,如下: public interface Queue extends Collec...
2014-02-15 14:03 2609 -
Java 7之多线程并发容器 - ConcurrentHashMap
与HashMap一样,ConcurrentHashMap也是一个基于散列的Map,但是它使用了锁分段的技术来提供更高的并发性和伸缩性。 锁分段就是进一步对一组独立的对象进行分解。例如,在Concurr...
2014-02-15 08:38 2511 -
Java 7之多线程并发容器 - CopyOnWriteArrayList
CopyOnWriteArrayList相当于线程安全的ArrayList,通过增加写时复制语义来实现线程安全性。底层也是通过一个可变数组来实现的。但是和ArrayList不同的时,它具有以下特性: ...
2014-02-14 20:39 3285 -
Java 7之多线程 - 线程的取消与关闭
Java没有一种安全的抢占式方法来停止线程,只有一些协作式机制。其中一种协作机制能设置某个“已请求取消”标志,而任务将定期查看该标志。如果设置了这个标志,那么任务将提前结束。举例如下: public ...
2014-02-14 18:14 1425 -
Java 7之多线程第12篇 - CountDownLatch
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 来看一下这个类的构造方法,如下: public CountDownLatch(i...
2014-02-14 09:37 1662 -
Java 7之多线程第11篇 - 读写锁
ReadWriteLock是ReentrantReadWriteLock的接口,而ReentrantReadWriteLock实现类中包括子类ReadLock和WriteLock。 首先来看一下Rea...
2014-02-14 08:02 1901 -
Java 7之多线程第10篇 - Semaphore
Semaphore用于保存当前可用许可的数量。是通过共享锁实现的。根据共享锁的获取原则,Semaphore分为"公平信号量"和"非公平信号量"。 "公平信号量"和"非公平信号量"的释放信号量的机制是一...
2014-02-13 19:45 1762 -
Java 7之多线程第9篇 - 显式的Condition对象
Condition接口中定义的方法如下所示: public interface Condition { // 造成当前线程在接到信号或被中断之前一直处于等待状态。 void await(); /...
2014-02-13 16:36 1519 -
Java 7之多线程第8篇 - 互斥锁 ReentrantLock
ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。也就是说ReentrantLock在同一个时间点只能被一个线程获取。 Java的synchronized块并不保证尝试进入它们的线程...
2014-02-13 14:59 2387 -
Java 7之多线程第7篇 - 线程锁基础
Java并发包中的核心是并发同步器AQS(AbstractQueuedSynchronizer) 首先要介绍一下java.util.concurrent.locks包下的LockSupport类。
2014-02-04 18:57 2935 -
Java 7之多线程第5篇 - 原子类
在java.util.concurrent包里包含的主要就是一些与并发实现相关的类,首先来看一下最为基础的原子类(java.util.concurrent.atomic)和和线程锁(java.utl....
2014-02-03 09:50 2976 -
Java 7之多线程第3篇 - 笔试、面试常见线程问题
笔试/面试中常见的多线程题目汇总
2013-11-24 20:34 2039 -
Java 7之多线程第2篇 - 实现线程同步
来看一道题目: public class A{ // 定义该类的静态Field public static int a = 6; } public class ATest1{ public s...
2013-11-24 16:34 2397 -
Java 7之多线程第1篇 - 基础API介绍
一个程序只有一个进程,而一个进程可以包含多个线程,所以进程只能是并发,而线程可以并行。 进程是操作系统中资源分配的基本单位,同一进程的线程间可以共享所属进程的资源,在运行期间,线程才是操作系统的调度和...
2013-11-23 21:11 3247
Java 7之多线程
最新推荐文章于 2022-06-19 14:58:25 发布