本文主要是介绍并发编程模型的两个关键问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
并发编程模型的两个关键问题
线程之间如何通信
及线程之间如何同步
线程之间如何通信 | 线程之间如何同步 |
---|---|
通信是指线程之间以何种机制来 交换信息 | 同步是指程序中用于 控制不同线程间操作发生相对顺序 的机制 |
通信方案:1、共享内存 2、消息传递 | |
在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存 中的公共状态进行隐式通信。 | 在共享内存并发模型里,同步是显式进行的。程序员必须显式指定某个方法或某段代码需要在线程之间互斥执行 。 |
在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息 来显式进行通信。 | 在消息传递的并发模型里,由于消息的发送必须在消息的接收之前 ,因此同步是隐式进行的。 |
Java的并发采用的是共享内存模型 |
线程间共享内容 | 线程间不会共享的内容 |
---|---|
在Java中,所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享。 | 局部变量(Local Variables),方法定义参数(Java语言规范称之为Formal Method Parameters)和异常处理器参数(Exception Handler Parameters)不会在线程之间共享,它们不会有内存可见性问题,也不受内存模型的影响。 |
-----------------------------------------------------------------------------书名:Java高并发编程详解:多线程与架构设计 作者:汪文君
-----------------------------------------------------------------------------摘自 书名:Java并发编程的艺术 作者:方腾飞;魏鹏;程晓明
-----------------------------------------------------------------------------读书笔记摘自 书名:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)作者:周志明
这篇关于并发编程模型的两个关键问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!