1) การมัลติเธรดนั้นยากมากและน่าเสียดายที่วิธีที่คุณนำเสนอความคิดนี้จนถึงตอนนี้บ่งบอกว่าคุณประเมินว่ามันยากเพียงใด
ในขณะนี้ดูเหมือนว่าคุณเพียงแค่ "เพิ่มหัวข้อ" ในภาษาและกังวลเกี่ยวกับวิธีการแก้ไขให้ถูกต้องและมีประสิทธิภาพในภายหลัง โดยเฉพาะอย่างยิ่ง:
หากสองภารกิจพยายามเข้าถึงตัวแปรพร้อมกันมันจะถูกทำเครื่องหมายอะตอมมิกและพวกมันจะต่อสู้เพื่อการเข้าถึง
...
ฉันยอมรับว่าตัวแปรอะตอมมิกจะไม่แก้ปัญหาทุกอย่าง แต่การแก้ปัญหาการซิงโครไนซ์เป็นเป้าหมายต่อไปของฉัน
การเพิ่มเธรดใน Javascript โดยไม่มี "วิธีแก้ปัญหาการซิงโครไนซ์" จะเหมือนกับการเพิ่มจำนวนเต็มใน Javascript โดยไม่มี "โซลูชันสำหรับปัญหาเพิ่มเติม" มันเป็นพื้นฐานของธรรมชาติของปัญหาที่โดยทั่วไปไม่มีประเด็นใดที่จะพูดถึงว่ามัลติเธรดมีมูลค่าเพิ่มโดยไม่ต้องมีวิธีแก้ปัญหาเฉพาะในใจไม่ว่าเราจะต้องการมันไม่ดีก็ตาม
นอกจากนี้การทำให้ตัวแปรทั้งหมดของอะตอมเป็นสิ่งที่น่าจะทำให้โปรแกรมแบบมัลติเธรดทำงานได้แย่กว่าโปรแกรมที่มีเธรดเดี่ยวซึ่งทำให้การทดสอบประสิทธิภาพในโปรแกรมที่เหมือนจริงยิ่งขึ้น
มันยังไม่ชัดเจนสำหรับฉันว่าคุณกำลังพยายามซ่อนเธรดจากโปรแกรมเมอร์ node.js หรือถ้าคุณวางแผนที่จะเปิดเผยมันในบางจุดทำให้การใช้ Javascript ใหม่สำหรับการเขียนโปรแกรมแบบหลายเธรดอย่างมีประสิทธิภาพ ตัวเลือกทั้งสองอาจน่าสนใจ แต่ดูเหมือนว่าคุณยังไม่ได้ตัดสินใจเลือกตัวเลือกที่คุณต้องการ
ดังนั้นในขณะนี้คุณกำลังขอให้โปรแกรมเมอร์พิจารณาเปลี่ยนจากสภาพแวดล้อมแบบเธรดเดียวเป็นสภาพแวดล้อมแบบมัลติเธรดใหม่เอี่ยมที่ไม่มีทางออกสำหรับปัญหาการซิงโครไนซ์และไม่มีหลักฐานว่าปรับปรุงประสิทธิภาพการทำงานในโลกแห่งความเป็นจริง
นั่นอาจเป็นเหตุผลว่าทำไมคนถึงไม่พาคุณจริงจัง
2) ความเรียบง่ายและความทนทานของเหตุการณ์ลูปเดียวเป็นข้อได้เปรียบอย่างมาก
โปรแกรมเมอร์ Javascript รู้ว่าภาษา Javascript นั้น "ปลอดภัย" จากสภาพการแข่งขันและข้อบกพร่องที่ร้ายกาจอย่างอื่น ๆ ซึ่งทำให้เกิดปัญหาการเขียนโปรแกรมแบบมัลติเธรดที่แท้จริงทั้งหมด ความจริงที่ว่าพวกเขาต้องการข้อโต้แย้งที่แข็งแกร่งเพื่อโน้มน้าวให้พวกเขายอมแพ้ว่าความปลอดภัยไม่ได้ทำให้พวกเขาปิดใจมันทำให้พวกเขามีความรับผิดชอบ
ถ้าคุณไม่สามารถรักษาความปลอดภัยนั้นได้ใครก็ตามที่อาจต้องการเปลี่ยนไปใช้โหนดแบบมัลติเธรดจะดีกว่าที่จะสลับไปใช้ภาษาอย่าง Go ซึ่งได้รับการออกแบบจากพื้นฐานสำหรับแอพพลิเคชั่นแบบมัลติเธรด
3) Javascript รองรับ "background threads" (WebWorkers) และการเขียนโปรแกรมแบบอะซิงโครนัสอยู่แล้วโดยไม่เปิดเผยการจัดการเธรดโดยตรงกับโปรแกรมเมอร์
ฟีเจอร์เหล่านั้นแก้ปัญหากรณีการใช้งานทั่วไปที่มีผลต่อโปรแกรมเมอร์ของ Javascript ในโลกแห่งความเป็นจริงโดยไม่ละทิ้งความปลอดภัยของเหตุการณ์ลูปเดียว
คุณมีกรณีการใช้งานเฉพาะจำไว้ว่าคุณสมบัติเหล่านี้ไม่สามารถแก้ไขได้และโปรแกรมเมอร์ Javascript นั้นต้องการวิธีแก้ปัญหาหรือไม่? ถ้าเป็นเช่นนั้นคุณควรแสดง node.js แบบมัลติเธรดของคุณในบริบทของกรณีการใช้งานเฉพาะนั้น
PS อะไรที่ทำให้ฉันลองเปลี่ยนไปใช้การใช้งานแบบมัลติเธรด node.js
เขียนโปรแกรมที่ไม่น่าสนใจใน Javascript / node.js ที่คุณคิดว่าจะได้รับประโยชน์จากมัลติเธรดแท้ ทำการทดสอบประสิทธิภาพของโปรแกรมตัวอย่างนี้ในโหนดปกติและโหนดแบบมัลติเธรดของคุณ แสดงให้ฉันเห็นว่ารุ่นของคุณปรับปรุงประสิทธิภาพรันไทม์การตอบสนองและการใช้งานหลายคอร์ในระดับที่สำคัญโดยไม่ต้องแนะนำข้อบกพร่องหรือความไม่แน่นอน
เมื่อคุณทำเช่นนั้นแล้วฉันคิดว่าคุณจะเห็นผู้คนให้ความสนใจแนวคิดนี้มากขึ้น