Да, в тексте описываются потоки в Ruby версии 1.8. Но с другой стороны, по сути ничего не изменилось. В 1.9 хоть и используются нативные потоки, но одно приложение может оперировать только одним потоком в одно время из-за все той же thread-safety.
Вот что сказано в последней версии книги:
Prior to Ruby 1.9, these were implemented as so-called green threads — threads were switched totally within the interpreter. In Ruby 1.9, threading is now performed by the operating system. This is an improvement, but not quite as big an improvement as you might want. Although threads can now take advantage of multiple processors (and multiple cores in a single processor), there’s a major catch. Many Ruby extension libraries are not thread safe (because they were written for the old threading model). So, Ruby compromises: it uses native operating system threads but operates only a single thread at a time. You’ll never see two threads in the same application running Ruby code truly concurrently. (You will, however, see threads busy doing (say) I/O while another thread executes Ruby code. That’s part of the point....)
Да и много ли сейчас людей используют 1.9 для разработки?
Хммм… В статье и правда слишком большое допущение. Но попробуем разобраться на конкретных примерах. Возможно имелись в виду какие-то базовые понятия, которые нельзя полностью осознать, не прочувствовав их. Например, вода или дерево. Ведь, возможно, очень сложно объяснить человеку, что такое вода, если он к ней ни разу не прикасался.
Вы понимаете слово «Африка», т.к. Африка — это континент. На одном из таких континентов вы живете. Поэтому осознать, что такое «Африка», можно и без жизненного опыта с ней, зная только какое-то объединяющее понятие. Точно так же можно порассуждать и с другими примерами. А что касается компьютера, то для того, чтобы он понимал значения слов, ему нужно будет объяснять какие-то базовые, объединяющие понятия, что является задачей не самой простой.
Вот что сказано в последней версии книги:
Да и много ли сейчас людей используют 1.9 для разработки?
Вы понимаете слово «Африка», т.к. Африка — это континент. На одном из таких континентов вы живете. Поэтому осознать, что такое «Африка», можно и без жизненного опыта с ней, зная только какое-то объединяющее понятие. Точно так же можно порассуждать и с другими примерами. А что касается компьютера, то для того, чтобы он понимал значения слов, ему нужно будет объяснять какие-то базовые, объединяющие понятия, что является задачей не самой простой.