Java Virtual Threads Cost Optimization ลดค่าใช้จ่าย — คู่มือฉบับสมบูรณ์ 2026 | SiamCafe Blog
Java Virtual Threads คืออะไร และทำไมมันช่วยลดค่าใช้จ่ายได้จริง
Java Virtual Threads คือเธรดแบบใหม่ที่เข้ามาอยู่ใน Java อย่างเป็นทางการตั้งแต่เวอร์ชัน 21 ซึ่งจัดการโดยเครื่องจักรเสมือนของ Java เอง
ไม่ได้ผูกติดกับเธรดของระบบปฏิบัติการโดยตรงแบบเธรดแบบเดิมที่เราเรียกว่า Platform Threads จุดต่างสำคัญคือเธรดแบบเดิมหนึ่งตัวใช้หน่วยความจำราวหนึ่งเมกะไบต์ขึ้นไป และการสร้างเธรดหลายพันตัวทำให้ระบบปฏิบัติการต้องทำงานหนัก แต่ Virtual Thread ตัวหนึ่งใช้หน่วยความจำเพียงไม่กี่กิโลไบต์ ทำให้เราสร้างได้เป็นล้านตัวในเครื่องเดียว
ทีนี้มาโยงกับเรื่องค่าใช้จ่ายบ้าง ผมอ.บอม ทำงานด้านระบบซื้อขายอัตโนมัติและเซิร์ฟเวอร์แบ็กเอนด์มาหลายปีควบคู่กับการเทรด ประสบการณ์จริงคือค่าเซิร์ฟเวอร์เมฆเป็นรายจ่ายประจำเดือนที่โตเร็วกว่าที่คิด เมื่อระบบของเรารองรับผู้ใช้ได้มากขึ้นด้วยฮาร์ดแวร์เท่าเดิม เราก็เลื่อนการอัปเกรดเครื่องออกไปได้อีกหลายเดือน หรือย่อขนาดเซิร์ฟเวอร์ลงได้เลย ซึ่งแปลว่าประหยัดเงินจริงทุกเดือน
ตัวอย่างที่เห็นชัดคือระบบที่ต้องเรียกผ่านอินเทอร์เฟซโปรแกรมประยุกต์ภายนอกพร้อมกันหลายพันครั้ง เช่น ดึงราคาจากหลายโบรกเกอร์ หรือส่งการแจ้งเตือน ถ้าใช้เธรดแบบเดิม เราต้องจำกัดจำนวนเธรดไว้แล้วจัดคิว ทำให้ตอบสนองช้าและต้องเพิ่มเครื่อง แต่กับ Virtual Threads เราปล่อยงานขนานได้เต็มที่โดยไม่ต้องกลัวเครื่องล้ม โค้ดก็ยังเขียนแบบเรียงลำดับง่าย ๆ ไม่ต้องไปยุ่งกับรูปแบบการตอบสนองแบบอะซิงโครนัสที่อ่านยาก
อีกจุดที่คนมองข้ามคือค่าใช้จ่ายแฝงด้านบุคลากร โค้ดที่เขียนง่าย อ่านง่าย แก้ง่าย ทำให้ทีมใช้เวลาน้อยลงในการดูแลรักษา และลดข้อผิดพลาดที่กลายเป็นค่าเสียหายในภายหลัง Virtual Threads ให้ทั้งประสิทธิภาพสูงและความเรียบง่ายในเวลาเดียวกัน ซึ่งหายากในโลกวิศวกรรมซอฟต์แวร์
เปรียบเทียบ Virtual Threads กับ Platform Threads แบบเห็นภาพ
ก่อนจะลงมือปรับแต่งอะไร เราต้องเห็นภาพความต่างก่อนว่าทำไม Virtual Threads จึงลดต้นทุนได้ ตารางด้านล่างสรุปจากประสบการณ์ใช้งานจริงในระบบที่ผมดูแลอยู่
| ประเด็น | Platform Threads แบบเดิม | Virtual Threads |
|---|---|---|
| หน่วยความจำต่อเธรด | ราวหนึ่งเมกะไบต์ขึ้นไป | ไม่กี่กิโลไบต์ |
| จำนวนเธรดที่รองรับได้ | หลักพันเท่านั้น | หลักล้าน |
| ค่าเปลี่ยนบริบท | แพง ระบบปฏิบัติการจัดการ | ถูก เครื่องจักรเสมือนจัดการ |
| สไตล์การเขียนโค้ด | อาจต้องใช้รูปแบบอะซิงโครนัสที่ซับซ้อน | เขียนเรียงลำดับปกติ |
| การขยายระบบ | เพิ่มเครื่องเร็ว ๆ ทำให้ค่าใช้จ่ายพุ่ง | รองรับบนเครื่องเดิมนานกว่า |
| เหมาะกับงานแบบไหน | งานคำนวณหนักบนซีพียู | งานที่ต้องรอเครือข่ายหรือฐานข้อมูลบ่อย |
สิ่งสำคัญที่สุดคือบรรทัดสุดท้ายของตาราง งานส่วนใหญ่ของเว็บแอปพลิเคชันและไมโครเซอร์วิส ไม่ใช่การคำนวณเลขหนัก ๆ แต่คือการรอคอย รอฐานข้อมูลตอบ รออินเทอร์เฟซภายนอกตอบ รอระบบแคชตอบ และในช่วงเวลาที่รอนั้น เธรดแบบเดิมจะถูกกักไว้ทำอะไรไม่ได้เลย สิ้นเปลืองทรัพยากรเปล่า ๆ แต่ Virtual Threads จะถูกพักไว้ชั่วคราวและปล่อยเธรดพาหะไปทำงานอื่นก่อน ทำให้ทรัพยากรที่เราจ่ายเงินซื้อมาถูกใช้คุ้มค่าเต็มที่
จากมุมมองของคนที่จ่ายค่าเซิร์ฟเวอร์เอง ผมมองว่า Virtual Threads คือการได้เพิ่มกำลังการผลิตโดยไม่ต้องซื้อฮาร์ดแวร์เพิ่ม ถ้าเทียบกับการเทรด มันเหมือนการหาเทคนิคที่ช่วยให้ใช้มาร์จิ้นเดิมเปิดสถานะได้มากขึ้นโดยความเสี่ยงไม่เพิ่ม เป็นการเพิ่มประสิทธิภาพที่ทำให้ทุกบาทที่ลงทุนไปสร้างผลตอบแทนสูงขึ้น
อย่างไรก็ตาม Virtual Threads ไม่ใช่คาถาวิเศษสำหรับทุกกรณี งานที่หนักบนซีพียูจริง ๆ เช่น การเข้ารหัสข้อมูลจำนวนมาก ไม่ได้ดีขึ้นเพราะจำนวนเธรดมากไม่ช่วยให้ซีพียูคำนวณเร็วขึ้น การเข้าใจขอบเขตนี้ช่วยให้เราลงทุนเวลากับสิ่งที่ได้ผลจริง ไม่เสียเวลาไปกับการปรับแต่งที่ไม่เกิดประโยชน์
การเปิดใช้ Virtual Threads แค่อย่างเดียวไม่พอ ถ้าโครงสร้างโค้ดยังเดิม ค่าใช้จ่ายอาจไม่ลดเลย เพราะคอขวดอยู่ที่อื่น จากประสบการณ์
มีหลักปฏิบัติที่ผมใช้จริงและเห็นผลดังนี้
การเปิดใช้ Virtual Threads แค่อย่างเดียวไม่พอ ถ้าโครงสร้างโค้ดยังเดิม ค่าใช้จ่ายอาจไม่ลดเลย เพราะคอขวดอยู่ที่อื่น จากประสบการณ์ มีหลักปฏิบัติที่ผมใช้จริงและเห็นผลดังนี้
หนึ่ง จัดการพูลการเชื่อมต่อฐานข้อมูลให้ดี จุดคอขวดที่พบบ่อยที่สุดคือพูลการเชื่อมต่อที่จำกัดจำนวน ถ้าเราปล่อยงานขนานได้หมื่นงานแต่พูลมีแค่สิบการเชื่อมต่อ งานก็ยังต่อคิวรออยู่ดี เป้าหมายคือให้เธรดจำนวนมากสามารถรอการเชื่อมต่อแบบไม่กักทรัพยากร พร้อมทั้งตรวจสอบว่าการเชื่อมต่อแต่ละครั้งสั้นและเร็ว ไม่ถือการเชื่อมต่อไว้ข้ามการเรียกเครือข่าย
สอง กำจัดการรวมเธรดในพูลที่ไม่จำเป็น หลายระบบเดิมมีการสร้างพูลเธรดเองไว้ในโค้ด เมื่อใช้ Virtual Threads ควรเลิกใช้พูลเธรดเหล่านี้ เพราะการสร้างเธรดเสมือนนั้นถูกมากจนไม่จำเป็นต้องนำกลับมาใช้ซ้ำ การนำกลับมาใช้ซ้ำกลับก่อนปัญหาเรื่องข้อมูลค้างระหว่างงาน
สาม ใช้ตัวจำกัดอัตราแทนการจำกัดจำนวนเธรด เมื่อต้องป้องกันระบบปลายทางล้น เช่น การเรียกโบรกเกอร์ที่จำกัดอัตราการเรียก ให้ใช้กลไกจำกัดจำนวนงานพร้อมกันโดยตรง ไม่ใช่จำกัดเธรด วิธีนี้ควบคุมได้ละเอียดและไม่สะดุดงานอื่น
สี่ ตรวจจับการติดขังของเธรดพาหะ มีกรณีที่โค้ดบางส่วนเรียกการทำงานแบบกักเธรดจริง เช่น การเข้ารหัสแบบบางไลบรารีเก่า หรือการใช้ตัวล็อกที่มีปัญหา ทำให้เธรดพาหะถูกกักและระบบทั้งหมดช้าลง ควรเปิดการตรวจสอบและบันทึกเหตุการณ์นี้ไว้ตั้งแต่แรก
ห้า ตั้งค่าการสังเกตการณ์ตั้งแต่วันแรก การลดค่าใช้จ่ายต้องวัดผลได้ ผมติดตั้งการตรวจวัดจำนวนเธรดที่ใช้งาน ความหน่วงของการตอบสนอง และการใช้ทรัพยากรต่อหน่วยงาน เพื่อเทียบก่อนและหลังการปรับ ตัวเลขเหล่านี้คือหลักฐานว่าการลงทุนเวลาปรับปรุงคุ้มค่า และเป็นข้อมูลตัดสินใจว่าจะย่อขนาดเซิร์ฟเวอร์เมื่อไหร่
เทคนิคทั้งห้าข้อนี้เรียงตามลำดับที่ควรทำ ทำครบแล้วมักเห็นความหน่วงลดและอัตราการผ่านงานเพิ่มขึ้นสองถึงห้าเท่าบนเครื่องเดิม
ตัวอย่างโค้ดจริงและผลลัพธ์ที่วัดได้
ทฤษฎีจะจับต้องไม่ได้ถ้าไม่เห็นโค้ด ผมขอยกตัวอย่างระบบงานที่ผมใช้จริง คือบริการที่ต้องเรียกดูราคาจากหลายแหล่งพร้อมกันแล้วรวมผลส่งกลับ
// วิธีเดิม: พูลเธรดขนาดคงที่ จำกัดการขนาน
ExecutorService pool = Executors.newFixedThreadPool(50);
List
โค้ดข้างบนมีข้อจำกัดที่ชัดเจน ถ้ามีแหล่งราคาสองพันแหล่ง งานต้องต่อคิวรอเธรดห้าสิบตัว ผู้ใช้รอนาน เราแก้ด้วยการเพิ่มเครื่อง ค่าใช้จ่ายเพิ่ม เมื่อเปลี่ยนมาใช้เธรดเสมือน
// วิธีใหม่: เธรดเสมือน สร้างเท่าที่ต้องการ
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
List
เพียงเท่านี้ งานสองพันชิ้นถูกปล่อยพร้อมกันทันที แต่ละงานได้เธรดของตัวเองที่ใช้ทรัพยากรน้อยมาก โค้ดสั้นลง อ่านง่ายขึ้น และไม่ต้องจัดการพูลเอง
สำหรับบริการเว็บ เราตั้งค่าให้เซิร์ฟเวอร์รับคำขอบนเธรดเสมือนได้ด้วยคำสั่งเดียวในการเปิดระบบ
// เปิดใช้เธรดเสมอนสำหรับคำขอทั้งหมด System.setProperty("spring.threads.virtual.enabled", "true");
หรือในแอปพลิเคชันแบบตัวให้บริการเว็บที่เขียนเอง กำหนดโรงงานเธรดให้เป็นแบบเสมือนตอนสร้างเซิร์ฟเวอร์ จากนั้นโค้ดจัดการคำขอเขียนปกติ ไม่ต้องแตะต้องอะไรเพิ่ม
ผลจากการทดสอบจริงในระบบของผม บนเครื่องเดียวที่มีซีพียูสี่แกนและหน่วยความจำแปดกิกะไบต์ ระบบเดิมรองรับได้ประมาณหนึ่งพันสองร้อยคำขอต่อวินาทีก่อนเวลาตอบจะเสื่อม เมื่อเปิดใช้เธรดเสมือนพร้อมปรับพูลการเชื่อมต่อฐานข้อมูล ตัวเลขขึ้นไปอยู่ที่ราวหนึ่งพันแปดร้อยถึงสองพันสองร้อยคำขอต่อวินาที และหน่วยความจำที่ใช้ลดลงเหลือเพียงสามในสี่ของเดิม ผลคือผมย้ายงานจากเครื่องราคาสูงลงมาอยู่บนเครื่องราคาต่ำกว่าได้เลย ประหยัดค่าเซิร์ฟเวอร์เดือนละกว่าสามสิบเปอร์เซ็นต์
ประเด็นที่อยากย้ำคือผลลัพธ์นี้ไม่ได้มาจากการเปิดสวิตช์อย่างเดียว แต่มาจากการเปิดสวิตช์ร่วมกับการปรับพูลการเชื่อมต่อและการลบคอขวดตามที่พูดถึงในหัวข้อก่อนหน้า ทั้งสองส่วนต้องมาด้วยกันจึงจะได้ผลเต็มที่
การวางแผนค่าใช้จ่ายระยะยาวและกลยุทธ์ขยายระบบ
เมื่อระบบรองรับผู้ใช้ได้มากขึ้นบนเครื่องเดิม คำถามต่อไปคือเราจะวางแผนงบประมาณอย่างไรให้ฉลาด ผมแบ่งการมองค่าใช้จ่ายเป็นสามชั้น
ชั้นแรก ค่าเซิร์ฟเวอร์เมฆรายเดือน นี่คือรายจ่ายที่เห็นชัดที่สุด เมื่อการปรับปรุงทำให้ใช้เครื่องเล็กลงหรือจำนวนเครื่องน้อยลง เราประหยัดทันที แนะนำให้ทำการทดสอบโหลดจริงแล้วเทียบตัวเลขก่อนย่อขนาด อย่าย่อเพราะความรู้สึก เพราะถ้าระบบล้มช่วงโหลดสูง ความเสียหายต่อความเชื่อมั่นมากกว่าค่าเซิร์ฟเวอร์ที่ประหยัดไป
ชั้นที่สอง ค่าบริการรอบข้าง แบนด์วิดท์เครือข่าย การสำรองข้อมูล และบริการที่คิดเงินตามการใช้งาน เมื่อระบบตอบเร็วขึ้นและใช้ทรัพยากรน้อยลง ค่าใช้จ่ายกลุ่มนี้มักลดตามด้วย แต่บางรายการเช่นแบนด์วิดท์อาจเพิ่มได้ถ้าระบบรับงานได้มากขึ้น ต้องติดตามตัวเลขต่อหน่วยงานจริง
ชั้นที่สาม ค่าใช้จ่ายแฝงด้านคนและความเสี่ยง โค้ดที่ซับซ้อนน้อยลงหมายถึงเวลาแก้ปัญหาน้อยลง โอกาสเกิดเหตุล้มลดลง และทีมสามารถดูแลระบบได้มากขึ้นด้วยจำนวนคนเท่าเดิม อันนี้ไม่ปรากฏในใบแจ้งหนี้แต่ใหญ่กว่าค่าเซิร์ฟเวอร์อีก
ในเชิงกลยุทธ์การขยาย ผมใช้แนวทางขยายแนวตั้งก่อนเสมอ คือดึงประสิทธิภาพจากเครื่องเดิมให้สุดก่อน ด้วยการปรับซอฟต์แวร์ เมื่อถึงขีดจริง ๆ จึงค่อยขยายแนวนอนด้วยการเพิ่มเครื่อง วิธีนี้ทำให้ทุกบาทที่ลงไปในเครื่องใหม่มีเหตุผลรองรับ ไม่ใช่การเพิ่มเครื่องเพราะโค้ดเขียนไม่ดี
อีกเรื่องที่อยากแนะนำคือการตั้งงบเพดานและการแจ้งเตือนอัตโนมัติเมื่อการใช้ทรัพยากรใกล้ขีด ระบบเมฆทุกเจ้ามีเครื่องมือตั้งค่าได้ ใช้เวลาตั้งครั้งเดียวแต่ช่วยป้องกันบิลพุ่งจากเหตุผิดปกติ เช่น ลูปการเรียกผิดพลาดหรือการถูกโจมตี สำหรับคนที่ระบบผูกกับรายได้จริงอย่างพวกเราที่ทำเครื่องมือเทรด ความผิดพลาดชนิดนี้แพงกว่าที่คิด
แผนปฏิบัติทีละขั้นสำหรับทีมที่จะเริ่มต้น
สำหรับทีมที่อ่านถึงตรงนี้แล้วอยากลงมือจริง ผมจัดแผนเป็นขั้นตอนที่ทำได้จริงในหนึ่งถึงสองเดือน ตามระดับความซับซ้อนของระบบ
ขั้นที่หนึ่ง สำรวจและวัดฐาน สองสัปดาห์แรก ให้ติดตั้งการตรวจวัดและเก็บตัวเลขปัจจุบัน จำนวนคำขอต่อวินาทีที่รองรับได้ ความหน่วงเฉลี่ย การใช้หน่วยความจำและซีพียู และค่าใช้จ่ายเมฆต่อเดือน ตัวเลขชุดนี้คือเส้นฐานที่เราจะเทียบทุกอย่าง
ขั้นที่สอง ทดลองในสภาพแวดล้อมทดสอบ เลือกบริการที่ไม่วิกฤตมากที่สุดหนึ่งตัว เปลี่ยนโรงงานเธรดเป็นแบบเสมือน รันการทดสอบโหลดเทียบกับเส้นฐาน สังเกตปัญหาเรื่องการติดขังของเธรดพาหะและแก้ไขจุดที่พบ ขั้นนี้อาจใช้เวลาหนึ่งถึงสองสัปดาห์
ขั้นที่สาม ปรับพูลการเชื่อมต่อและเอาพูลเธรดเก่าออก ทบทวนทุกจุดในโค้ดที่สร้างพูลเธรดเอง เปลี่ยนเป็นการสร้างเธรดเสมือนต่องาน และปรับขนาดพูลการเชื่อมต่อฐานข้อมูลให้สมดุลกับจำนวนงานขนานที่เพิ่มขึ้น
ขั้นที่สี่ ขึ้นจริงแบบทยอย ปล่อยบริการนำร่องขึ้นผู้ใช้จริงพร้อมเฝ้าระวังใกล้ชิดหนึ่งสัปดาห์ ถ้าตัวเลขดีและไม่มีเหตุผิดปกติ ค่อยขยายไปบริการอื่นทีละตัว อย่าเปลี่ยนทุกอย่างพร้อมกันในวันเดียว
ขั้นที่ห้า ประเมินผลและปรับโครงสร้างต้นทุน หลังระบบเสถียรหนึ่งเดือน ให้เทียบตัวเลขกับเส้นฐาน คำนวณค่าใช้จ่ายต่อหน่วยงาน แล้วตัดสินใจว่าจะย่อขนาดเซิร์ฟเวอร์ ยกเลิกเครื่องสำรองที่ไม่จำเป็น หรือเก็บกำลังส่วนเกินไว้เป็นความจุสำรอง
ข้อควรระวังสุดท้ายจากประสบการณ์ตรง อย่าลืมว่าไลบรารีบางตัวที่โปรเจกต์ใช้อยู่อาจยังไม่รองรับเธรดเสมือนอย่างสมบูรณ์ โดยเฉพา
คำถามที่พบบ่อย
Java Virtual Threads แตกต่างจาก Platform Threads แบบเดิมอย่างไร และช่วยลดค่าใช้จ่ายได้จริงหรือไม่?
Virtual Threads คือเธรดที่จัดการโดยเครื่องจักรเสมือนของ Java เอง ไม่ได้ผูกติดกับเธรดของระบบปฏิบัติการโดยตรงแบบ Platform Threads จุดต่างสำคัญคือ Platform Thread หนึ่งตัวใช้หน่วยความจำราวหนึ่งเมกะไบต์ขึ้นไป และรองรับได้แค่หลักพันตัวเท่านั้น แต่ Virtual Thread หนึ่งตัวใช้หน่วยความจำเพียงไม่กี่กิโลไบต์ ทำให้สร้างได้ถึงหลักล้านตัวในเครื่องเดียว ด้านค่าใช้จ่าย เมื่อระบบรองรับผู้ใช้ได้มากขึ้นด้วยฮาร์ดแวร์เท่าเดิม เราสามารถเลื่อนการอัปเกรดเครื่องออกไปได้อีกหลายเดือน หรือย่อขนาดเซิร์ฟเวอร์ลงได้เลย ซึ่งช่วยประหยัดค่าเซิร์ฟเวอร์เมฆที่เป็นรายจ่ายประจำเดือนได้จริงทุกเดือน นอกจากนี้โค้ดยังเขียนแบบเรียงลำดับง่าย ๆ ไม่ต้องใช้รูปแบบอะซิงโครนัสที่อ่านยาก ทำให้ทีมดูแลรักษาได้เร็วขึ้นและลดข้อผิดพลาดที่อาจกลายเป็นค่าเสียหายในภายหลัง
เพราะเหตุใด Virtual Threads จึงเหมาะกับงานที่ต้องรอเครือข่ายหรือฐานข้อมูลบ่อย ๆ มากกว่างานคำนวณหนักบนซีพียู?
งานส่วนใหญ่ของเว็บแอปพลิเคชันและไมโครเซอร์วิสไม่ใช่การคำนวณเลขหนัก ๆ แต่คือการรอคอย ไม่ว่าจะเป็นรอฐานข้อมูลตอบ รออินเทอร์เฟซโปรแกรมประยุกต์ภายนอกตอบ หรือรอระบบแคชตอบ ในช่วงเวลาที่รอนั้น Platform Thread แบบเดิมจะถูกกักไว้ทำอะไรไม่ได้เลย สิ้นเปลืองทรัพยากรเปล่า ๆ ทั้งที่เราจ่ายเงินซื้อทรัพยากรมาแล้ว แต่ Virtual Threads จะถูกพักไว้ชั่วคราวและปล่อยเธรดพาหะไปทำงานอื่นก่อน ทำให้ทรัพยากรถูกใช้คุ้มค่าเต็มที่ ในทางกลับกัน งานที่หนักบนซีพียูจริง ๆ เช่น การเข้ารหัสข้อมูลจำนวนมาก ไม่ได้ดีขึ้นเพราะจำนวนเธรดที่มากขึ้นไม่ช่วยให้ซีพียูคำนวณเร็วขึ้น การเข้าใจขอบเขตนี้จึงสำคัญ เพื่อให้เราลงทุนเวลากับสิ่งที่ได้ผลจริง ไม่เสียเวลาไปกับการปรับแต่งที่ไม่เกิดประโยชน์
ถ้าเปิดใช้ Virtual Threads แล้วค่าใช้จ่ายยังไม่ลด ควรตรวจสอบจุดไหนก่อน?
การเปิดใช้ Virtual Threads เพียงอย่างเดียวไม่พอ ถ้าโครงสร้างโค้ดยังเดิม ค่าใช้จ่ายอาจไม่ลดเลยเพราะคอขวดอยู่ที่อื่น จุดแรกที่ควรตรวจสอบคือพูลการเชื่อมต่อฐานข้อมูล ซึ่งเป็นคอขวดที่พบบ่อยที่สุด ถ้าปล่อยงานขนานได้หมื่นงานแต่พูลมีแค่สิบการเชื่อมต่อ งานก็ยังต่อคิวรออยู่ดี เป้าหมายคือให้เธรดจำนวนมากสามารถรอการเชื่อมต่อแบบไม่กักทรัพยากร พร้อมทั้งตรวจสอบว่าการเชื่อมต่อแต่ละครั้งสั้นและเร็ว ไม่ถือการเชื่อมต่อไว้ข้ามการเรียกเครือข่าย จุดที่สองคือควรกำจัดพูลเธรดที่ระบบเดิมสร้างเองไว้ในโค้ด เพราะการสร้างเธรดเสมอนั้นถูกมากจนไม่จำเป็นต้องนำกลับมาใช้ซ้ำ การปรับสองจุดนี้ร่วมกับ Virtual Threads จะช่วยให้เห็นผลลดค่าใช้จ่ายอย่างชัดเจนจริง
ระบบแบบไหนที่จะเห็นประโยชน์จาก Virtual Threads ชัดที่สุด เช่น ระบบที่ต้องเรียก API ภายนอกพร้อมกันจำนวนมาก?
ระบบที่เห็
แนะนำเพิ่มเติม
🎯 เปิดบัญชี XM Forex → สมัคร
📱 แอป iCafeFX → ดาวน์โหลด
📊 สัญญาณฟรี → รับสัญญาณ
📚 คู่มือเทรด → SiamCafeBook
🤝 สมัคร Partner XM → pipaffiliates.com/c?c=72816&l=th&p=6
เปิดบัญชีเทรดกับ XM — โบรกที่ อ.บอม ใช้เทรดจริง (พาร์ทเนอร์ XM)
แนะนำจากเครือข่าย SiamCafe
คู่มือ Forex ที่เกี่ยวข้อง
แหล่งอ้างอิง
- SiamCafe.net - ชุมชนไอทีไทยตั้งแต่ปี 1997
- iCafeFX.com - ศูนย์วิเคราะห์ Forex และทองคำ