并发的几个程:
进程(Process)
操作系统中的基本执行单位
线程(Thread)
进程内部创建和运行的执行单元,共享进程的地址空间和系统资源
协程(Coroutine)
是一种轻量级的并发编程模型,它允许在单个线程内创建多个执行流程
纤程(Fiber)
Java Project Loom中引入的一种概念,也称为虚拟线程。它是一种由Java虚拟机(JVM)管理的轻量级线程,相比传统的操作系统线程,纤程的创建和销毁成本更低
管程(Monitor)
是一种并发编程概念,用于管理多个线程之间的互斥访问共享资源的问题。
它提供了一种同步机制,以确保在任何时刻只有一个线程可以访问被保护的共享资源。
管程通常包含以下几个核心要素:
- 临界区(Critical Section): 这是管程中被保护的代码段,只能由一个线程同时执行。临界区的目标是访问共享资源,确保数据的一致性和正确性。
- 互斥锁(Mutex): 互斥锁是管程中的同步机制,用于保护临界区。一次只有一个线程可以持有互斥锁,其他线程需要等待锁的释放才能进入临界区。
- 条件变量(Condition Variable): 条件变量是管程中的一种通信机制,用于在线程之间传递信息。它允许线程等待某些条件满足后再继续执行,从而避免忙等待。
Java: Java中的synchronized关键字用于创建管程,其中synchronized块用于标识临界区,确保只有一个线程可以进入。Java还提供了wait()和notify()等方法来实现条件变量