摘要: 1 、ThreadPoolExecutor理解 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因此java提供了线程池。在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在JDK1.5后,有了很大的改善。JDK1.5之后加入了java 阅读全文
posted @ 2018-09-06 20:29 爱笑的berg 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 1、 自旋理解 很多synchronized里面的代码只是一些很简单的代码,执行时间非常快,此时等待的线程都加锁可能是一种不太值得的操作,因为线程阻塞涉及到用户态和内核态切换的问题。既然synchronized里面的代码执行地非常快,不妨让等待锁的线程不要被阻塞,而是在synchronized的边界 阅读全文
posted @ 2018-09-06 20:00 爱笑的berg 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 1.10乐观锁_悲观锁_重入锁_读写锁_CAS无锁机制_自旋锁1)乐观锁:就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将 比较-设置 这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑 阅读全文
posted @ 2018-09-06 08:49 爱笑的berg 阅读(1022) 评论(0) 推荐(0) 编辑