uv_async_send是线程安全的,但是uv_async_init不是线程安全的。 如果在循环线程中使用uv_async_init并创建aysnc循环,也许我会多次调用uv_async_send,但它的回调只会被调用一次。(我需要在调用uv_async_send的同时调用该回调)。
但是当我为其他线程中的每个回调创建异步句柄时,这是不安全的。 那么,如何使用线程安全的libuv?
http://docs.libuv.org/en/v1.x/async.html?highlight=uv_async_init
答案 0 :(得分:0)
也许我可以在循环线程中创建一个异步句柄,但是运行由我自己创建的回调队列。
答案 1 :(得分:0)
uv_async_init不是线程安全的……当我为其他线程中的每个回调创建异步句柄时,这是不安全的……我可以在循环线程中创建异步句柄
似乎您误解了线程安全一词。这并不意味着您不能从循环线程以外的其他线程调用uv_async_init()
。这只是意味着您可能无法从多个线程并行调用(无互锁)。