【青鸟飞扬教育】并发编程关键问题

科技2025-05-14阅读  35+

JDK ️天生就是多线程的,多线程大大提速了程序运行的速度,但是凡事有利就有弊,并发编程时经常会涉及到线程之间的通信跟同步问题,一般也说是可见性、原子性、有序性。

线程通信

线程的通信是指线程之间通过什么机制来交换信息,在编程中常用的通信机制有两个,️共享内存️消息传递

共享内存。

在共享内存的并发模型中线程之间共享程序的公共数据状态,线程之前通过读写内存中的公共内存区域来进行信息的传递,典型的共享内存通信方式就是通过️共享对象来进行通信。

消息传递,比如在 Linux 系统中同步机制有管道、信号、消息队列、信号量、套接字这几种方式。

在消息传递的并发模型中,线程之间是没有共享状态的,线程之间必须通过明确的发送消息来显式的进行通信,在 Java 中的典型通信方式就是 wait() 跟 notify()。

在 C/C++ 中可以同时支持共享内存跟消息传递机制,Java 中采用的是共享内存模型。

线程同步

同步是指程序用于控制️不同线程之间操作发生相对顺序的机制。

在共享内存并发模型里,同步是显式进行的。程序员必须 ️显式指定某个方法或某段代码需要在线程之间互斥执行。

在消息传递的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是隐式进行的。

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,结果仅供参考,今日霍州所有文章均包含本声明。

猜你喜欢