在C++中,可以使用互斥锁(mutex)、条件变量(condition variable)和信号量(semaphore)等同步机制来实现进程之间的同步。
#include <mutex>
std::mutex mtx;
void func() {
std::lock_guard<std::mutex> lock(mtx); // 加锁
// 访问共享资源
} // 解锁
#include <condition_variable>
std::condition_variable cv;
void func() {
std::unique_lock<std::mutex> lock(mtx);
cv.wait(lock); // 等待条件变量
}
void another_func() {
cv.notify_one(); // 唤醒一个等待在条件变量上的线程
}
#include <semaphore>
std::semaphore sem(1); // 初始值为1
void func() {
sem.acquire(); // P操作
// 访问共享资源
sem.release(); // V操作
}
以上是常用的C++同步机制,可以根据具体需求选择合适的机制来实现进程之间的同步。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: c++中strtok函数的用法是什么