использование std :: this_thread :: yield ()? - PullRequest
7 голосов
/ 09 апреля 2011

Может ли кто-нибудь привести реальный пример использования std::this_thread::yield() в приложении c ++?

1 Ответ

7 голосов
/ 09 апреля 2011

Я использовал yield в реализации std :: lock, найденной здесь:

http://llvm.org/svn/llvm-project/libcxx/trunk/include/mutex

Получается, что при одновременной блокировке нескольких блокировок / мьютексов, когда вы отказываетечтобы получить его, вы можете сделать приложение быстрее , используя yield перед попыткой блокировок / мьютексов в другом порядке.

В этом исходном коде я фактически вызываю sched_yield().Но это только для того, чтобы получить зависимость заголовка так, как я этого хотел.На этой платформе std::this_thread::yield() является не чем иным, как звонком на sched_yield():

http://llvm.org/svn/llvm-project/libcxx/trunk/include/thread

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...