摘要: 一、线程的状态 Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。 New:新建状态,当线程创建完成时为新建状态,即new Thread(...),还没有调用start方法时,线程处于新建状 阅读全文
posted @ 2018-03-08 16:16 Alter 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、volatile的作用 在《Java并发编程:核心理论》一文中,我们已经提到过可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有 阅读全文
posted @ 2018-03-08 16:16 Alter 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态 阅读全文
posted @ 2018-03-08 16:15 Alter 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronize 阅读全文
posted @ 2018-03-08 16:14 Alter 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Vo 阅读全文
posted @ 2018-03-08 16:13 Alter 阅读(135) 评论(0) 推荐(0) 编辑