摘要: ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中 阅读全文
posted @ 2019-06-18 16:32 Mr.Aaron 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关 阅读全文
posted @ 2019-06-18 16:14 Mr.Aaron 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 方法一:synchronized, wait, notify 1.1 资源 1.2 消费者 1.3 生产者 1.4 测试代码 方法二:lock, condition, await, signal 2.1 资源 2.2 消费者 2.3 生产者 2.4 测试代码 阅读全文
posted @ 2019-06-18 11:12 Mr.Aaron 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 在使用Lock之前,我们都使用Object 的wait和notify实现同步的。举例来说,一个producer和consumer,consumer发现没有东西了,等待,produer生成东西了,唤醒。 线程consumer 线程producer synchronize(obj){ obj.wait( 阅读全文
posted @ 2019-06-18 10:10 Mr.Aaron 阅读(1269) 评论(0) 推荐(0) 编辑