java并发编程
文章平均质量分 71
nbrremix
这个作者很懒,什么都没留下…
展开
-
(转)深入研究ReentrantLock(重入锁)之引出话题篇
synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候。1.某个线程在等待一个锁的控制权的这段时间需要中断 2.需要分开处理一些wait-notify,ReentrantLock里面的Condition应用,能够控制notify哪个线程 3.具有公平锁功能,每个转载 2012-03-08 16:25:57 · 461 阅读 · 0 评论 -
浅析 Java Thread.join()
一、在研究join的用法之前,先明确两件事情1.join方法定义在Thread类中,则调用者必须是一个线程,例如:Thread t = new CustomThread();//这里一般是自定义的线程类t.start();//线程起动t.join();//此处会抛出InterruptedException异常 2.上面的两行代码也是在一个线程里面执行的。 以上出转载 2012-03-09 13:48:58 · 395 阅读 · 0 评论 -
Hashtable、synchronizedMap、ConcurrentHashMap 比较
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK 1.0的一部分。转载 2012-03-10 19:30:47 · 810 阅读 · 0 评论 -
为什么用线程池
线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开转载 2012-03-11 12:21:30 · 808 阅读 · 0 评论 -
设计模式 reactor和proactor
原文地址:http://xmuzyq.javaeye.com/blog/783218===================================================== 在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之转载 2012-03-14 11:05:14 · 963 阅读 · 0 评论 -
Java aio(异步网络IO)初探
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO转载 2012-03-14 11:29:05 · 2809 阅读 · 0 评论 -
Java_BIO/NIO/AIO
(一) BIO传统的server/client实现是基于thread per request.(二) NIO最核心的一点就是反应器模式:当有感兴趣的事件发生时,就通知对应的事件处理器去处理事件,如果没有,则不处理。所以使用一个线程做轮询就可以了。JDK1.4中推出NIO,对高速地块读取、对I/O多路复用和非阻塞进行支持。考虑到流I/O采用阻塞方式进行网络I/转载 2012-03-14 10:55:36 · 6867 阅读 · 0 评论 -
Amdahl定律
计算机科学中的一个重要定律。 描述:系统中某部件由于采用某种方式使系统性能改进后,整个系统系能的提高与该方式的使用频率或占总的执行时间的比例有关。 主要应用:改善“系统瓶颈”性能。 Amdahl定律定义了加速比: 加速比=采用改进措施后性能/未采用改进措施前的性能 =未采用改进措施前执行某任务时间/采用改进措施后执行某任务的时间 n个处理转载 2012-03-16 09:41:50 · 8996 阅读 · 0 评论