Я разместил здесь вопрос о том, как эффективно управлять потоками Как правильно использовать потоки для подключения ping к URL-адресу?
Я получил несколько замечательных рекомендаций и советов, касающихся пулов, безопасности потоков, а также некоторых библиотек и гемов для использования. Я пытаюсь выполнить одну из перечисленных рекомендаций, используя concurrent- ruby для создания пула потоков / соединений для выполнения некоторых потоков. В простом файле ruby у меня есть следующий код:
pool = Concurrent::FixedThreadPool.new(5)
pool.post do
puts 'hello'
end
В соответствии с документацией в одновременном - ruby Я сделал необходимые шаги, но мой код не будет выполняться. Оператор No Put выполняется. Вот еще один пример:
pool = Concurrent::FixedThreadPool.new(5)
array = []
pool.post do
array << 1
puts 'Why am I not working?'
end
puts array.size
Размер этого массива равен 0. Код в пуле не выполняется. Я бы хотя бы ожидал размер 1. Я последовал примеру до тройника. Почему этот код не выполняется?