多线程可以调用uv_run吗?

时间:2019-01-24 03:03:46

标签: c++ c libuv asio

我们知道io_service run可以在许多线程中调用,例如:

boost::asio::io_service ss;
    std::thread th1([&]() {
        ss.run();
    });
    std::thread th2([&]() {
        ss.run();
    });

对于uv_run,我们可以像io_service那样吗?

auto loop = uv_default_loop();
    std::thread th1([=]() {
        uv_run(loop, UV_RUN_DEFAULT);
    });
    std::thread th2([=]() {
        uv_run(loop, UV_RUN_DEFAULT);
    });

看来uv_run是无锁的,是否会导致不同的问题处理相同的fd事件? 例如:

tcp fd 42

thread1处理其读取事件

thread2也会处理其读取事件

0 个答案:

没有答案