并发编程中的两个关键问题?以及如何解决呢?Java呢?
并发编程中的两个关键问题:
- 线程之间如何通信?
- 线程之间如何同步?
什么是线程通信?
线程通信是指线程之间如何交换信息。
什么是线程同步?
线程同步是指控制多个线程按照一定顺序先后执行。
如何实现线程通信?
- 共享内存
- 消息传递
怎样实现共享内存?
- 线程之间共享程序的公共状态,通过读、写内存中的程序公共状态,实现线程之间的隐式通信。
- 在共享内存并发模型中,线程的同步是显式进行的。开发者必须指定某个方法或某段代码需要在线程之间互斥执行。
怎样实现消息传递?
- 在消息传递模型中,没有程序的公共状态,线程之间通过直接发送消息来实现通信。
- 在消息传递并发模型中,由于消息的发送必须在消息接收之前,因此同步是隐式进行的。
Java中线程是如何通信的?
- Java并发编程中,线程之间的通信使用的是共享内存并发模型。
- Java线程之间的通信是隐式进行的,对开发者来说是透明的。