摘要: 转自:http://www.cnblogs.com/dolphin0520/p/3920397.html 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 阅读全文
posted @ 2016-03-06 20:23 YDDMAX 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 1、Queue继承自Collection,所以Queue不是传统的先进先出的队列,能够进行add和remove等操作。 LinkedList实现了DQueue接口,Dqueue接口继承自Queue,所以LinkedList实际上是一个双向队列。 PriorityQueue是Queue的实现类,内部采 阅读全文
posted @ 2016-03-03 11:17 YDDMAX 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 自己的思考 1、NIO使用复杂,合理使用能在性能上有很大的提升 2、一直顺序的读写一个文件,BIO可能比NIO效率更高。NIO主要应用于大吞吐量和系统负载比较高的时候(针对于阻塞和非阻塞),快速读取和写入要采取内存映射文件,网络编程也要采用epoll,变更通知也要使用NIO。 NIO不能说比BIO好 阅读全文
posted @ 2016-03-02 10:57 YDDMAX 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、容器的类结构图如下: 2、 阅读全文
posted @ 2016-03-01 08:59 YDDMAX 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1、参考文档 https://www.ibm.com/developerworks/cn/java/j-lo-forkjoin/ http://www.ibm.com/developerworks/cn/java/j-jtp11137.html http://www.infoq.com/cn/art 阅读全文
posted @ 2016-02-29 13:49 YDDMAX 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1、尽量使用synchronized块,而不是使用synchronized方法,synchronized能保证更高的效率。 2、synchronized能保证互斥性和可见性。 3、在static上加synchronized是在class对象上加锁。在方法上加synchronized是在this上加锁 阅读全文
posted @ 2016-02-27 17:39 YDDMAX 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1、保证了long,double的读写的原子性 2、保证了可见性(数据直接从主存里面读),加锁的方式也能保证可见性 3、在使用的时候不能依赖其他的变量,包括自己。 阅读全文
posted @ 2016-02-27 17:34 YDDMAX 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1、不可以被中断 2、基本数据类型除了long和double之外,读其的读写都是原子的。如果设置long和double为volatile则也是原子的。 3、java现在有AutomicInteger等原子类。 4、我认为java多线程的原子性意味着两方面: 1、存在互斥机制 (long的访问实际上是 阅读全文
posted @ 2016-02-27 17:26 YDDMAX 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1、可以很细粒度的控制锁 2、支持设置请求锁的时间 3、支持设置请求锁的时候可以设置响应 阅读全文
posted @ 2016-02-27 17:12 YDDMAX 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1、Thread.suspend(),Thread.resume(),Thread.stop()方法都已经废弃了,因为可能导致死锁。 2、抛出InterruptedException将导致中断标识位复位 3、多线程编程一定要注意阻塞语句,阻塞一定不能长久的阻塞,应该能被interrupt,否则则可能 阅读全文
posted @ 2016-02-27 17:06 YDDMAX 阅读(473) 评论(0) 推荐(0) 编辑