• ADADADADAD

    C++中如何实现信号量以同步多个进程[ 编程知识 ]

    编程知识 时间:2024-12-04 17:03:09

    作者:文/会员上传

    简介:

    在C++中实现信号量可以使用std::mutex和std::condition_variable来实现。下面是一个简单的示例代码来展示如何使用这两个类来实现信号量:#include <iostream>#include <threa

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    在C++中实现信号量可以使用std::mutexstd::condition_variable来实现。下面是一个简单的示例代码来展示如何使用这两个类来实现信号量:

    #include <iostream>#include <thread>#include <mutex>#include <condition_variable>class Semaphore {public:Semaphore(int count) : count(count) {}void wait() {std::unique_lock<std::mutex> lock(mutex);while (count <= 0) {cv.wait(lock);}count--;}void signal() {std::unique_lock<std::mutex> lock(mutex);count++;cv.notify_one();}private:int count;std::mutex mutex;std::condition_variable cv;};Semaphore semaphore(1);void process() {for (int i = 0; i < 5; i++) {semaphore.wait();std::cout << "Thread ID: " << std::this_thread::get_id() << " is executing" << std::endl;semaphore.signal();}}int main() {std::thread t1(process);std::thread t2(process);t1.join();t2.join();return 0;}

    在这个示例代码中,我们定义了一个Semaphore类,其中包含waitsignal方法用于等待和通知信号量。在process函数中,我们创建了两个线程来模拟多个进程同时执行,每个线程在执行前会等待信号量,然后执行完毕后通知信号量。通过使用std::mutexstd::condition_variable来实现信号量,我们可以实现多个进程之间的同步。

    C++中如何实现信号量以同步多个进程.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: c++