
线程
文章平均质量分 81
a414129902
这个作者很懒,什么都没留下…
展开
-
线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目前...原创 2012-02-13 20:18:33 · 102 阅读 · 0 评论 -
Java中断机制
首先,看看Thread类里的几个方法: public static boolean interrupted 测试当前线程是否已经中断。线程的中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外)。 public boolean isInterru...原创 2013-03-06 12:02:36 · 83 阅读 · 0 评论 -
AQS架构
1. LockSupport类AQS架构使用LockSupport来实现线程的休眠,时间性休眠,唤醒... 2. AQS架构-所有同步器的基本架构----- a. 基于AQS架构的同步器基本上只需要实现四个函数 1. tryAcqurie(int) -- 线程会调用这个函数来做能否互斥的获取同步器资源的尝试的逻辑 2. tryRelease(int) ...原创 2013-03-06 17:01:19 · 150 阅读 · 0 评论 -
ReentrantLock(一)
synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候。 1.某个线程在等待一个锁的控制权的这段时间需要中断 2.需要分开处理一些wait-notify,ReentrantLock里面的Condition应用,能够控制notify哪个线程 3.具有公平锁功能,每个到来的线程...原创 2013-03-06 17:03:08 · 97 阅读 · 0 评论 -
ReentrantLock(二)
ReentrantLock是一个互斥的同步器,其实现了接口Lock,里面的功能函数主要有:1. lock() -- 阻塞模式获取资源2. lockInterruptibly() -- 可中断模式获取资源3. tryLock() -- 尝试获取资源4. tryLock(time) -- 在一段时间内尝试获取资源5. unlock() -- 释放资源 ReentrantLock实现Lock...原创 2013-03-06 17:03:56 · 108 阅读 · 0 评论 -
java中wait/notify机制
通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务 后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。以上逻辑简单的说...原创 2012-11-23 00:13:43 · 79 阅读 · 0 评论 -
java中的ThreadPoolExecutor
工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。 文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和 maximumPoolSize,BlockingQueue选型(Synchr...原创 2013-01-07 13:52:19 · 94 阅读 · 0 评论