C++11 this_thread::yeild(12)

原文地址:http://www.cplusplus.com/reference/thread/this_thread/yield/

function
<thread>

std::this_thread::yield

void yield() noexcept;
Yield to other threads
The calling thread yields, offering the implementation the opportunity to reschedule.
挂起当前线程的运行,给其他线程运行的机会。

This function shall be called when a thread waits for other threads to advance without blocking.

该方法应该在一个线程等待其他线程资源的时候不阻塞地调用。(即等待其他资源的时候,应该挂起该线程)


Parameters

none

Return value

none

Example

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 
// this_thread::yield example #include <iostream> // std::cout #include <thread> // std::thread, std::this_thread::yield #include <atomic> // std::atomic std::atomic<bool> ready (false); void count1m(int id) { while (!ready) { // wait until main() sets ready... std::this_thread::yield(); } for (volatile int i=0; i<1000000; ++i) {} std::cout << id; } int main () { std::thread threads[10]; std::cout << "race of 10 threads that count to 1 million:\n"; for (int i=0; i<10; ++i) threads[i]=std::thread(count1m,i); ready = true; // go! for (auto& th : threads) th.join(); std::cout << '\n'; return 0; }
Edit & Run


Possible output (last line may vary):
race of 10 threads that count to 1 million... 6189370542 

Exception safety

No-throw guarantee: never throws exceptions.


—————————————————————————————————————————————————————————————————

//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

转载请注明出处:http://blog.csdn.net/qq844352155

author:天下无双

Email:[email protected]

2014-9-4

于GDUT

——————————————————————————————————————————————————————————————————






你可能感兴趣的:(thread,线程,C++11)