一、多线程
在C++开发中,原生的线程库主要有两个,一个是C++11提供的< thread>(std::thread类),另一个是Linux下的<pthread.h>(pthread类)
1.pthread类
2.thread类
C++ 多线程编程(一):std::thread的使用
C++多线程:thread类
C++多线程编程——thread线程创建与使用(2W字保姆级介绍)
二、线程安全
2.1 信号量sem
【Linux篇】第十七篇——信号量
信号量主要就是用来保护共享资源的,也就是说如果你想限制某个(些)资源在同一时刻只能有一(多)个线程拥有,就可以使用信号量。当然也可以用作让一个线程等待另一个线程完成某项工作。
主要用下面一组函数(系统调用)来实现。
- int sem_init(sem_t *sem,int pshared,unsigned int value);
- int sem_destroy(sem_t *sem);
- int sem_wait(sem_t *sem);
- int sem_trywait(sem_t *sem);
- int sem_post(sem_t *sem);
- int sem_getvalue(sem_t *sem);