Skip to content

Latest commit

 

History

History
9 lines (9 loc) · 1.08 KB

线程间的通信方式有那些?.md

File metadata and controls

9 lines (9 loc) · 1.08 KB
  1. 共享内存:线程可以直接访问进程的内存空间。共享数据的访问通常需要同步机制来防止出现竞态条件。
  2. 互斥锁:用于控制对共享资源的访问,保证在同一时间只有一个线程访问共享资源。
  3. 读写锁:允许多个线程同时读取一个资源,但写入时需要独占访问。
  4. 条件变量:允许一个或多个线程在某个条件发生前处于睡眠状态,等待另一个线程在该条件上发出通知或广播。
  5. 信号量:可以用于限制对共享资源的访问,也用于线程间的同步。
  6. 事件(event):允许一个线程通知一个或多个等待的线程某个事件已发生。
  7. 屏障(barrier):允许多个线程等待直到所有线程都已经达到某个同步点,然后再一起继续执行。
  8. 线程局部存储(TLS):为每个线程提供独立的变量副本,避免了同步问题,但不适用于线程间的数据共享。
  9. 原子操作:利用CPU提供的原子指令集来进行无需加锁的线程安全操作。