Два метода Thread#run
and Thread#wakeup
различны как-то, но мне это непонятно. Может ли кто-то предоставить пару кода с минимальной разницей (т. Е. Разница заключается только в использовании run
в одном, wakeup
в другом), которые показывают разные результаты и, возможно, объяснение для этого?Различия между Thread # run и Thread # wakeup
Редактировать Как Cary указывает, что это действительно дубликат this question, и есть хороший ответ, но теперь я не уверен, что это значит иметь Awaken нить, но не работает. Как это отличается от того, что нить находится в состоянии сна?
То же, что http://stackoverflow.com/questions/12763593/difference-between-threadrun-and-threadwakeup? –
Я ничего не знаю о потоках (в списке), но я нашел следующее объяснение [Mark Slagell] (http://books.google.ca/books?id=bKCuEhzyUgMC&pg=PA443&lpg=PA443&dq=ruby+thread+run+ vs + wakeup & source = bl & ots = vT0zpUPjGz & sig = gRrd3c0Cw9uYIcFwlsAxA4DmIvI & hl = en & sa = X & ei = dQqJUs3-ItG-2wWBxoCQAw & ved = 0CHkQ6AEwCQ # v = onepage & q = ruby% 20thread% 20run% 20vs% 20wakeup & f = false): «Разница между этими двумя методами заключается в том, что' wakeup 'просто делает поток подходящим для планирования (ставит его обратно в линию, так сказать), тогда как' run' инструктирует планировщик немедленно запустить его. " Надеюсь это поможет. –
, как @CarySwoveland указал, 'run' внутренне вызывает' wakeup', но также использует 'rb_thread_schedule();' для мгновенного планирования этого потока. – phoet