คำถามติดแท็ก fibers

7
ข้อใดจะดีกว่าสำหรับงานพร้อมกันบน node.js เส้นใย? คนทำงานเว็บ? หรือเธรด?
ฉันสะดุดกับ node.js เมื่อหลายปีก่อนและชอบมันมาก แต่ในไม่ช้าฉันก็พบว่ามันขาดความสามารถในการทำงานที่ต้องใช้ CPU มาก ดังนั้นฉันจึงเริ่ม googling และได้รับคำตอบเหล่านี้เพื่อแก้ปัญหา: Fibers, Webworkers และ Threads (thread-a-gogo) ตอนนี้จะใช้อันไหนเป็นความสับสนและหนึ่งในนั้นจำเป็นต้องใช้อย่างแน่นอน - จุดประสงค์ของการมีเซิร์ฟเวอร์ที่ IO ดีแค่ไหนและไม่มีอย่างอื่น? คำแนะนำที่จำเป็น! อัพเดท: ฉันกำลังคิดหาวิธีที่ไม่สาย เพียงแค่ต้องการคำแนะนำมากกว่านั้น ตอนนี้สิ่งที่ฉันคิดคือ: มามีเธรดกันเถอะ (ใช้ thread_a_gogo หรืออาจจะเป็นเว็บเวิร์ค) ตอนนี้เมื่อเราต้องการมากขึ้นเราสามารถสร้างเพิ่มเติมได้ แต่จะมีข้อ จำกัด บางประการเกี่ยวกับกระบวนการสร้าง (ไม่ได้บอกเป็นนัยโดยระบบ แต่อาจเป็นเพราะค่าใช้จ่าย) ตอนนี้เมื่อเราเกินขีด จำกัด เราสามารถแยกโหนดใหม่และเริ่มสร้างเธรดทับได้ ด้วยวิธีนี้มันสามารถดำเนินต่อไปได้จนกว่าเราจะถึงขีด จำกัด (ในที่สุดกระบวนการก็มีค่าใช้จ่ายสูงเช่นกัน) เมื่อถึงขีด จำกัด นี้เราจะเริ่มจัดคิวงาน เมื่อใดก็ตามที่เธรดว่างจะมีการมอบหมายงานใหม่ วิธีนี้จะดำเนินต่อไปได้อย่างราบรื่น นั่นคือสิ่งที่ฉันคิด ความคิดนี้ดีหรือไม่? ฉันยังใหม่กับกระบวนการและเธรดทั้งหมดนี้ดังนั้นจึงไม่มีความเชี่ยวชาญใด ๆ กรุณาแบ่งปันความคิดเห็นของคุณ …

2
ทำไมเราถึงต้องการเส้นใย
สำหรับ Fibers เรามีตัวอย่างคลาสสิก: การสร้างตัวเลข Fibonacci fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end ทำไมเราถึงต้องการเส้นใยที่นี่? ฉันสามารถเขียนสิ่งนี้ใหม่ได้ด้วย Proc เดียวกัน (จริงๆแล้วการปิด) def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end ดังนั้น 10.times { …
101 ruby  lambda  closures  fibers  proc 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.