Concurrency
文章平均质量分 86
幺零小柒
这个作者很懒,什么都没留下…
展开
-
Java并发编程实战(1)
▲线程共享进程范围内的资源,比如内存句柄和文件句柄,所以线程之间获取同一个内存的数据的时候就有并发问题,可能会访问或修改其他线程正在使用的变量。但每个线程都有各自的程序计数器、栈以及局部变量等。▲垃圾收集器通常在一个或多个专门的线程中运行。▲当JVM启动时,它将为JVM的内部任务(例如,垃圾收集,终结操作等)创建后台线程,并创建一个主线程来运行main方法。▲线程安全性:当多个线程访问某个类时,这个原创 2017-09-21 16:33:54 · 497 阅读 · 0 评论 -
Java并发编程实战(2)
▲内存可见性:我们希望确保当一个线程修改了对象状态后,其他线程可以看到发生的状态变化。▲不要假设指令执行的顺序,你无法预知不同线程之间的指令会以何种顺序执行。▲一个线程可能获得某个变量的最新值,而获得另一个变量的失效值。▲最低安全性:当线程在没有同步的情况下读取变量时,可能会得到一个失效值,但至少这个值是由之前某个线程设置的值,而不是一个随机值。▲对于非volatile类型的long和double变原创 2017-10-19 19:16:33 · 368 阅读 · 0 评论 -
Java并发编程实战(3)
▲如果在一个不变性条件中包含多个变量,那么在执行任何访问相关变量的操作时,都必须持有保护这些变量的锁。▲如果在某个操作中包含有基于状态的先验条件,那么这个操作就称为依赖状态的操作。比如从空队列中移除一个元素,队列必须处于“非空”状态。▲当一个对象被封装到另一个对象中时,能够访问被封装对象的所有代码都是已知的。与对象可以由整个程序访问的情况相比,更易于对代码进行分析。通过将封闭机制与何时的加锁策略结合原创 2017-10-19 19:48:25 · 467 阅读 · 0 评论 -
wait、notify、notifyAll、sleep、join、yield
Object类:wait、notify、notifyAll Thread类:sleep、join、yield 关于多线程有几个很常用的但是又很容易让人混淆的方法,今天专门对它们进行一番整理。 其中wait、notify、notifyAll设计为Object类中的方法是为了让任何对象都能被当成对象锁,也叫监视器。Object原创 2017-11-22 17:40:12 · 581 阅读 · 0 评论