20并发编程
网友:sslake
文章列表
2024-03-21 23:37:51

并发编程
- 并发:指程序的多个部分在同一时间内执行
- 并行:指程序的多个部分在同一时间内在多个处理器上执行。
并发编程中的线程
- 线程是一种轻量级的进程,他于同一进程中的其他线程共享相同的地址空间和其他资源,但是每个线程都有自己的执行线
- 线程提供一种比进程更轻量级的并发编程模型
线程的创建
- POSIX线程库提供了创建线程的API,名为pthread_create
- 线程创建后,程序中会有多个线程同时执行,因此程序的正确性取决于这些线程之间的交互方式
线程的同步
- 线程之间的同步是指线程之间协调它们的活动,以便它们在正确的时间执行正确的操作。
- 常见的同步机制包括互斥量、条件变量和信号量。
互斥量
- 互斥量是一种同步机制,用于控制对共享资源的访问,以确保一次只有一个线程可以访问共享资源
- POSIX线程库提供一种名为pthread_mutex的互斥量
条件变量
- 条件变量是一种同步机制,用于允许线程在等待某些条件成立时挂起,并在条件满足时恢复。
- POSIX线程库提供了一种名为pthread_cond的条件变量
信号变量
- 信号量是一种同步机制,用于控制对共享资源的访问,并提供了计数器功能。
- POSIX线程库提供了一种名为sem_t的信号量
死锁
- 死锁是一种情况,其中两个或多个线程被互相持续等待彼此持有的资源。
- 死锁是并发编程中的一种常见问题,因此需要小心设计线程间的交互方式
线程的竞争条件
- 竞争条件是指程序的正确性取决于线程之间的执行顺序,以及线程之间对共享资源的访问。
- 竞争条件可能到导致未定义的行为或者程序错误,因此需要小心设计线程间的交互方式。
线程安全的设计
- 线程安全是指程序能够正确地在多个线程同时执行时运行。
- 线程安全的设计包括使用同步机制来保护共享资源、避免竞争条件以及小心设计线程间的交互方式。