2017年7月7日
摘要: 参考资料: http://xxgblog.com/2016/04/02/traverse-list-thread-safe/ 一些列表类及其特性 1. 线程安全的列表类并不意味着调用它的代码就一定线程安全 2. 只有CopyOnWriteArrayList能支持在遍历时修改列表元素 以下代码模拟多线 阅读全文
posted @ 2017-07-07 23:59 hiv 阅读(1492) 评论(0) 推荐(0)
摘要: 假设有线程1/线程2/线程3,线程3必须在线程1/线程2执行完成之后开始执行,有两种方式可实现 Thread类的join方法:使宿主线程阻塞指定时间或者直到寄生线程执行完毕 CountDownLatch类:指定计数器,当计数器清零即取消阻塞 阅读全文
posted @ 2017-07-07 23:57 hiv 阅读(13796) 评论(0) 推荐(0)
摘要: 两种实现线程同步的方法 下文用三种不同的方式实现生产者/消费者模型 synchronized结合wait/notify/notifyAll ReentrantLock结合Condition BlockingQueue(内部仍然采用ReentrantLock实现) 阅读全文
posted @ 2017-07-07 23:56 hiv 阅读(586) 评论(0) 推荐(0)
摘要: Thread实现Runnable接口并实现了大量实用的方法 public static native void yield(); 此方法释放CPU,但并不释放已获得的锁,其它就绪的线程将可能得到执行机会,它自己也有可能再次得到执行机会 public static native void sleep( 阅读全文
posted @ 2017-07-07 23:55 hiv 阅读(1193) 评论(0) 推荐(0)
摘要: Java实现线程的两种方法 继承Thread类 实现Runnable接口 它们之间的区别如下: 1)Java的类为单继承,但可以实现多个接口,因此Runnable可能在某些场景比Thread更适用2)Thread实现了Runnable接口,并且有更多实用方法3)实现Runnable接口的线程启动时仍 阅读全文
posted @ 2017-07-07 23:54 hiv 阅读(344) 评论(0) 推荐(0)
摘要: 参考资料: http://www.jianshu.com/p/40d4c7aebd66 0.环境 Java: jdk1.8.0_91 CPU: Intel Core i5-6500 Memory: 8G 1.说明 本系列文章为Java多线程的学习记录(代码https://github.com/hiv 阅读全文
posted @ 2017-07-07 23:49 hiv 阅读(209) 评论(0) 推荐(0)