2.5总结

来源:互联网 发布:github mac客户端下载 编辑:程序博客网 时间:2024/05/18 15:24

当线程之间不会相互作用时,提高多线程性能是非常容易的,尤其是通过共享变量。当线程之间相互作用出现、竞争状态、数据竞争和缓存变量问题会提高一个应用的线程不安全性。

你可以使用同步去解决竞争状态、数据竞争和缓存变量问题。同步是一个java虚拟机的特性,它确保两个或更多当前线程不会同时执行一个临界区,必须有序列地进行。

活跃性涉及最终以有利的方面结束应用。当一个应用的状态是不能继续往下执行时,那么活跃性就会失败。多线程应用面临着死锁、活跃锁、和饥饿的状态。

同步展现两个特性:互斥和可见性。同步关键字连接着这两个特性。Java也提供了一个较弱的涉及能见度只有同步形式,和拥有这个特性的volatile的关键字。

当一个全局变量声明为volatile,它就不能再声明final了。然而,这不是个问题,因为java允许你安全调用final的域而不需要同步。你将会经常使用final,帮助你确保,线程在上下文的不变类中是安全的。

          源码下载:git@github.com:owenwilliam/Thread.git

原创粉丝点击