摘要:
[toc] 自定义Lock以及ReadWriterLock 基于synchronize实现自定义版Lock 基于synchronized实现自定义版ReadWriterLock 阅读全文
摘要:
[toc] 生产者消费者模型实现方案 版本1:无通信的生产消费模型 版本2:使用if导致临界变量出现问题生产消费模型 版本3:使用notify导致虚假唤醒导致死锁生产消费模型 版本4:使用wait,notifyAll生产消费模型 版本5:使用Lock,Condition生产消费模型 版本6:使用自定 阅读全文
摘要:
[toc] 守护线程与join 守护线程 所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在 阅读全文
摘要:
[toc] synchronized关键字需要注意的几点 脏读 对业务写方法加锁,对业务读方法不加锁,容易产生脏读。 synchronized是可重入锁 可重入锁:一个线程已经拥有某个对象的额锁,再次申请的时候仍然会得到该对象的锁 synchronized对于异常处理 ynchronized 如果出 阅读全文
摘要:
[toc] 深入理解volatile Volatile的官方定义 Java语言规范第三版中对volatile的定义如下:java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如 阅读全文