Ruby on Rails เป็นแบบมัลติเธรดหรือไม่
Ruby on Rails เป็นแบบมัลติเธรดหรือไม่

วีดีโอ: Ruby on Rails เป็นแบบมัลติเธรดหรือไม่

วีดีโอ: Ruby on Rails เป็นแบบมัลติเธรดหรือไม่
วีดีโอ: How to build a Multithreaded HTTP Server in Ruby from Scratch | Preview 2024, พฤศจิกายน
Anonim

Phusion Passenger ใช้กระบวนการทำงานพร้อมกันตามกระบวนการเพื่อจัดการกับคำขอสองสามอย่างพร้อม ๆ กัน ดังนั้นพูดอย่างเคร่งครัดไม่ใช่ " มัลติเธรด , "แต่ยังคงพร้อมกัน คำพูดนี้จาก ทับทิม MidWest 2011 มีความคิดที่ดีในการรับ Ruby on Rails แบบมัลติเธรด กำลังไป.

ในลักษณะนี้ Ruby รองรับการทำงานแบบมัลติเธรดหรือไม่

NS มัลติเธรด โปรแกรมมีการดำเนินการมากกว่าหนึ่งเธรด ทับทิม ทำให้ง่ายต่อการเขียนโปรแกรมแบบมัลติเธรดด้วยคลาสเธรด ทับทิม เธรดเป็นวิธีที่มีน้ำหนักเบาและมีประสิทธิภาพเพื่อให้เกิดการทำงานพร้อมกันในโค้ดของคุณ

ประการที่สอง Ruby เกิดขึ้นพร้อมกันหรือไม่? โดยเฉพาะอย่างยิ่ง, การทำงานพร้อมกันของทับทิม คือเมื่องานสองงานสามารถเริ่มต้น เรียกใช้ และดำเนินการให้เสร็จสิ้นในช่วงเวลาที่ทับซ้อนกันได้ ไม่จำเป็นต้องหมายความว่าทั้งคู่จะทำงานพร้อมกันในทันที (เช่น หลายเธรดบนเครื่องแกนเดียว)

ในทำนองเดียวกัน Ruby เป็นแบบเธรดเดียวหรือไม่?

คำตอบสั้นๆ คือ ใช่ พวกเขาคือ เกลียวเดียว . คำตอบยาวขึ้นอยู่กับ JRuby เป็น มัลติเธรด และสามารถรันใน tomcat ได้เหมือนกับโค้ด java อื่น ๆ MRI (ค่าเริ่มต้น ทับทิม ) และ Python ทั้งคู่มี GIL (Global Interpreter Lock) และเป็นเช่นนั้น เกลียวเดียว.

รูบี้มีกิลไหม?

MRI มี สิ่งที่เรียกว่าล็อคล่ามทั่วโลก ( GIL ). เป็นการล็อครอบการดำเนินการของ ทับทิม รหัส. ซึ่งหมายความว่าในบริบทแบบมัลติเธรด เธรดเดียวเท่านั้นที่สามารถดำเนินการได้ ทับทิม รหัสได้ตลอดเวลา NS GIL มีอยู่เพื่อปกป้อง ทับทิม ภายในจากสภาพการแข่งขันที่อาจทำให้ข้อมูลเสียหาย

แนะนำ: