
多线程
深蓝色的忧伤
百度糯米团购
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java多线程编程——同步器Future和FutureTask(五)
public interface FutureFuture 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用 Future 但又不提供可用原创 2014-10-30 11:33:17 · 409 阅读 · 0 评论 -
Java NIO学习笔记——内存映射缓冲区(READ_ONLY、READ_WRITE、PRIVATE)
新的FileChannel类提供了一个名为map( )的方法,该方法可以在一个打开的文件和一个特殊类型的ByteBuffer之间建立一个虚拟内存映射(第一章中已经归纳了什么是内存映射文件以及它们如何同虚拟内存交互)。在FileChannel上调用map( )方法会创建一个由磁盘文件支持的虚拟内存映射(virtual memory mapping)并在那块虚拟内存空间外部封装一个MappedByte原创 2014-10-30 11:34:17 · 1174 阅读 · 0 评论 -
java多线程编程——显示锁ReadWriteLock(二)
当需要对集合同时进行写入和读取操作时,如果多线程同时操作会出现异常,那么现在利用ReadWriteLock显示锁,可以在写入量比较小,读取量比较大的场景中,方便的实现上述功能。package test;import java.util.Calendar;import java.util.Map;import java.util.TreeMap;import java.uti原创 2014-10-30 11:33:28 · 359 阅读 · 0 评论 -
java多线程编程——同步器Exchanger(四)
类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程提供的数据,并返回。当在运行不对称的活动时很有用,比如当一个线程填充了buffer,另一个线程从buffer中消费数据的时候,这两个线程可以用Exchanger来交换数据。当两个线程通过Exchan原创 2014-10-30 11:33:07 · 370 阅读 · 0 评论 -
线程中各种唤醒、等待、睡眠方法之间的区别
一、notify()方法和notifyAll()方法的区别notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁此时如果该对象没有原创 2014-10-30 11:32:56 · 9575 阅读 · 0 评论 -
java多线程编程——同步器CountDownLatch(三)
CountDownLatch主要起倒计时计数器作用,它主要有两个方法await()和countDown()。一旦某个线程调用await()方法,那么该线程就会阻塞,等待CountDownLatch计数器倒计时归零,需要注意的是尽管线程调用await()方法后会阻塞,但是CountDownLatch允许别的线程调用countDown()方法,将计数器减一。也就是说调用计时器的线程阻塞后,可以利用别的原创 2014-10-30 11:32:45 · 351 阅读 · 0 评论 -
java多线程编程——同步器CyclicBarrier(二)
在实际应用中,有时候需要多个线程同时工作以完成同一件事情,而且在完成过程中,往往会等待其他线程都完成某一阶段后再执行,等所有线程都到达某一个阶段后再统一执行。 比如有几个旅行团需要途经深圳、广州、韶关、长沙最后到达武汉。旅行团中有自驾游的,有徒步的,有乘坐旅游大巴的;这些旅行团同时出发,并且每到一个目的地,都要等待其他旅行团到达此地后再同时出发,直到都到达终点站武汉。 这时候CyclicB原创 2014-10-30 11:32:29 · 398 阅读 · 0 评论 -
java多线程编程——同步器Semaphore(一)
网上关于解释Semaphore用法的代码很多,但是都不能运行或者运行错误。下面的例子是经过我自己运行过的。而且我详细的注释了下各个变量和方法的用途。希望对大家有用,一起研究。import java.util.concurrent.Semaphore;/** * * @author Administrator * */public class PoolSemaphore原创 2014-10-30 11:32:40 · 468 阅读 · 0 评论