如何从被阻止的电话中返回?

yur*_*rib 1 c++ multithreading blocking

是否可以强制线程从调用返回到阻塞函数,例如从流中阻塞读取?

int x;
std::cin >> x;
Run Code Online (Sandbox Code Playgroud)

例如...

Ana*_*tts 5

不,这是不可能的.如果你想找出存在的数据是否阅读,使用select()系统调用 - 如果你只有当有数据等待读取,你永远不会块

  • `select()`不是任何语言的一部分 - 它是一个POSIX函数,应该可用于任何与POSIX兼容系统上的C接口的语言.这不是不使用C++或其流对象的理由.你可以用Ruby或Python或D或其他任何东西替换C++这个词,你将无法使用任何非C语言. (5认同)