8
อะไรคือข้อเสียของการใช้งาน JavaScript รันไทม์แบบมัลติเธรด? [ปิด]
ฉันทำงานเกี่ยวกับการใช้งาน JavaScript แบบหลายเธรดสำหรับสัปดาห์ที่ผ่านมา ฉันมีหลักฐานของแนวคิดที่ทำใน C ++ โดยใช้ JavaScriptCore และเพิ่ม สถาปัตยกรรมนั้นง่าย: เมื่อรันไทม์เสร็จสิ้นการประเมินสคริปต์หลักมันจะเปิดตัวและเข้าร่วมเธรดพูลซึ่งเริ่มเลือกงานจากคิวลำดับความสำคัญที่ใช้ร่วมกันหากสองภารกิจพยายามเข้าถึงตัวแปรพร้อมกันมันจะถูกทำเครื่องหมายอะตอมมิก . ปัญหาคือเมื่อฉันแสดงการออกแบบนี้ให้โปรแกรมเมอร์ JavaScript ฉันได้รับความคิดเห็นเชิงลบอย่างมากและฉันไม่รู้ว่าทำไม แม้จะเป็นส่วนตัวพวกเขาทุกคนบอกว่าจาวาสคริปต์นั้นมีความหมายว่าเป็นเธรดเดี่ยวซึ่งไลบรารีที่มีอยู่จะต้องถูกเขียนใหม่และ gremlins จะวางไข่และกินสิ่งมีชีวิตทุกชนิดถ้าฉันทำงานต่อไป ตอนแรกฉันมีการนำ coroutine มาใช้ (โดยใช้บริบทเพิ่ม) ในสถานที่เช่นกัน แต่ฉันต้องทิ้ง (JavaScriptCore มีความรู้เกี่ยวกับสแต็ค) และฉันไม่ต้องการเสี่ยงต่อความโกรธของพวกเขาดังนั้นฉันจึงตัดสินใจไม่พูดถึงมัน คุณคิดอย่างไร? JavaScript หมายถึงเป็นเธรดเดี่ยวหรือไม่และควรปล่อยไว้ตามลำพังหรือไม่ เหตุใดทุกคนจึงไม่เห็นด้วยกับการรันไทม์ JavaScript ที่ทำงานพร้อมกัน แก้ไข: ขณะนี้โครงการอยู่ในGitHubทดลองด้วยตัวเองและแจ้งให้เราทราบว่าคุณคิดอย่างไร ต่อไปนี้เป็นรูปภาพของสัญญาที่รันบนคอร์ CPU ทั้งหมดพร้อมกันโดยไม่มีการช่วงชิง: