पर थ्रेड पूल के पीछे विचार को रूपांतरित करें मुझे फाइबर \ coroutines और क्रिस्टल में कार्यान्वयन के पीछे विचार सीखने में कुछ कठिन समय है।क्रिस्टल फाइबर/स्पॉन
मुझे आशा है कि यह इस पूछने के लिए सही जगह है, मैं पूरी तरह से एक "यहाँ नहीं" जवाब :)
स्वीकार करेंगे यह रूबी में बहु सूत्रण से निपटने में मेरी हमेशा की तरह है:
threads = []
max_threads = 10
loop do
begin
threads << Thread.new do
helper_method(1,2,3,4)
end
rescue Exception => e
puts "Error Starting thread"
end
begin
threads = threads.select { |t| t.alive? ? true : (t.join; false) }
while threads.size >= max_threads
puts 'Got Maximum threads'
sleep 1
threads = threads.select { |t| t.alive? ? true : (t.join; false) }
end
rescue Exception => e
puts e
end
end
इस तरह से मैं एक नया थ्रेड खोलता हूं, आमतौर पर आने वाले कनेक्शन या किसी अन्य चीज के, थ्रेड को सरणी में जोड़ें, और फिर जांचें कि मेरे पास और अधिक धागे नहीं हैं जो मैं चाहता था।
स्पॉन \ चैनल \ फाइबर आदि का उपयोग कर क्रिस्टल में समान कुछ लागू करने का एक अच्छा तरीका क्या होगा ..?
बिल्कुल जो मैं खोज रहा था, धन्यवाद! – Ba7a7chy