C++ Concurrency in Action ฉบับที่ 2: ภาพรวมเนื้อหาและพื้นฐานที่ควรมี
หนังสือของ Anthony Williams ว่าด้วยการเขียนโปรแกรม multithreaded ด้วย C++ ฉบับปรับปรุงสำหรับ C++14 และ C++17 บทความนี้สรุปจากหน้าสำนักพิมพ์ Manning roadmap ของหนังสือ และ repository โค้ดทางการ

ขอบเขตของบทความ: แนะนำขอบเขตเนื้อหาจากสารบัญในรูป roadmap ของหนังสือบน Manning liveBook หน้าหนังสือของสำนักพิมพ์ Manning และ repository โค้ดของผู้เขียน ยังไม่ได้อ่านเนื้อหาบทใดเต็มบท
นักพัฒนา C++ ที่ต้องเขียนโค้ดหลาย thread มักเจอบั๊กที่เกิดเป็นครั้งคราวและทำซ้ำยาก เช่น data race หรือ deadlock หนังสือเล่มนี้ตั้งใจสอนเครื่องมือ concurrency ใน Standard Library อย่างเป็นระบบ บทความนี้ช่วยดูว่าเนื้อหาครอบคลุมอะไร และคุณพร้อมจะอ่านหรือยัง
หนังสือเล่มนี้ว่าด้วยอะไร
C++ Concurrency in Action, Second Edition เขียนโดย Anthony Williams ตีพิมพ์โดย Manning เดือนกุมภาพันธ์ 2019 ฉบับพิมพ์ยาว 592 หน้า ISBN 9781617294693 (หน้าหนังสือของ Manning) หน้าสำนักพิมพ์ระบุว่าฉบับนี้ปรับปรุงให้ครอบคลุม C++14 และ C++17 และแนะนำผู้เขียนว่าเป็นสมาชิก BSI C++ Panel มาตั้งแต่ปี 2001 และเป็นผู้พัฒนา just::thread Pro ซึ่งเป็นส่วนขยายของ thread library ใน C++11
เนื้อหาครอบคลุมหัวข้ออะไร
หน้าแนะนำหนังสือบน Manning liveBook มี roadmap แบ่งเนื้อหาไว้ดังนี้
บท | หัวข้อตาม roadmap |
|---|---|
1–4 | แนะนำเครื่องมือ concurrency ใน Standard Library และวิธีใช้ |
5 | memory model และ atomic operations รวมถึงการกำหนดลำดับการทำงานด้วย atomic |
6 | data structure แบบใช้ lock |
7 | data structure แบบ lock-free |
8 | แนวทางออกแบบโค้ด multithreaded ปัญหาด้านประสิทธิภาพ และตัวอย่าง parallel algorithm |
9 | การจัดการ thread เช่น thread pool, work queue และการขัดจังหวะงาน |
10 | parallelism ที่เพิ่มใน C++17 ในรูป overload ของ algorithm ใน Standard Library |
11 | การทดสอบและดีบักโค้ด concurrent |
หน้าบทที่ 1 บน liveBook เปิดให้เห็นเพียงชื่อบท Hello, world of concurrency in C++! รายการหัวข้อ และย่อหน้าแรก จึงยังไม่ได้อ่านเนื้อหาบทนั้น
โค้ดประกอบ
ผู้เขียนเผยแพร่โค้ดของฉบับที่ 2 ไว้ใน ccia_code_samples บน GitHub ภายใต้ Boost Software License ไฟล์ในโฟลเดอร์ listings ตั้งชื่อตามเลขบทและเลข listing เช่น listing_1.1.cpp ตรงกับ listing 1.1 ในเล่ม ผู้อ่านจึงเปิดดูตัวอย่างโค้ดก่อนตัดสินใจได้
พื้นฐานที่ควรมีก่อนอ่าน
หน้า Manning ระบุว่าหนังสือเขียนสำหรับนักพัฒนา C และ C++ ระดับกลาง และไม่ต้องมีประสบการณ์ concurrency มาก่อน ถ้ายังไม่คุ้นกับ template, RAII หรือ smart pointer ควรทบทวนก่อน เพราะเครื่องมือใน Standard Library ใช้แนวคิดเหล่านี้ ข้อแนะนำนี้เป็นของบทความ
เหมาะกับใคร และใครควรเริ่มจากเล่มอื่นก่อน
เหมาะ กับนักพัฒนา C++ ที่เขียนภาษาได้คล่องแล้ว และต้องการเข้าใจ thread, synchronization และ memory model ให้ถูกต้อง
เหมาะ กับคนทำระบบที่ต้องการประสิทธิภาพสูง เช่น ระบบประมวลผลข้อมูลตลาด เพราะบทที่ 5 ถึง 8 พูดถึง atomic, lock-free และประสิทธิภาพ ข้อนี้เป็นการเชื่อมโยงของบทความ หนังสือไม่ได้เขียนเรื่องการเงิน
ควรเริ่มจากเล่มอื่นก่อน ถ้ายังเพิ่งเริ่มเรียน C++
ข้อจำกัดของข้อมูลที่ใช้ในบทความนี้
ยังไม่ได้อ่านเนื้อหาบทใด ข้อมูลเนื้อหามาจาก roadmap และหน้าสำนักพิมพ์
ข้อมูลในแคตตาล็อกของ Libro ใช้ ISBN 9781638356356 ซึ่งไม่ตรงกับ ISBN ฉบับพิมพ์ 9781617294693 บนหน้า Manning น่าจะเป็นฉบับ ebook ของฉบับที่ 2 แต่ยังไม่ได้ยืนยันจากสำนักพิมพ์
ไม่ได้ compile หรือทดลองโค้ดใน repository
แหล่งอ้างอิง
C++ Concurrency in Action, Second Edition · Manning · ข้อมูลหนังสือ ผู้อ่านเป้าหมาย และประวัติผู้เขียน
C++ Concurrency in Action, Second Edition (liveBook) · Manning · roadmap ของหนังสือ
ccia_code_samples · Anthony Williams · README และสัญญาอนุญาตของโค้ดประกอบ
หนังสือที่กล่าวถึงในบทความนี้

C++ Concurrency in Action
Anthony Williams
roadmap ของหนังสือไล่จาก thread และ synchronization ไปถึง memory model, lock-free data structures, thread pool และ parallel algorithms ของ C++17
บทความนี้อ่านจบได้ในตัวเอง หนังสือด้านบนคือจุดต่อยอดสำหรับผู้ที่ต้องการศึกษาลึกขึ้น
อ่านต่อ
25 ตุลาคม 2569
Computer Networking: A Top-Down Approach ฉบับที่ 7: เรียนเครือข่ายจากชั้น application ลงไปตำราเครือข่ายคอมพิวเตอร์ของ James F. Kurose และ Keith W. Ross ที่สอนจากชั้น application ลงไปถึงชั้นกายภาพ บทความนี้สรุปจากข้อมูลแคตตาล็อก หน้าสำนักพิมพ์ Pearson และข่าวจาก NYU เพื่อช่วยดูว่าเล่มนี้เหมาะกับคุณหรือไม่
25 ตุลาคม 2569
Automate the Boring Stuff with Python ฉบับแรก: เขียน Python เพื่อลดงานซ้ำในออฟฟิศหนังสือ Python สำหรับคนที่ไม่ได้จะเป็นโปรแกรมเมอร์อาชีพของ Al Sweigart บทความนี้อ่านบางบทของฉบับแรก (2015) ที่ผู้เขียนเปิดให้อ่านออนไลน์ ได้แก่บทนำและบทที่ 12 เรื่อง Excel เพื่อช่วยตัดสินว่าเล่มนี้เหมาะกับคุณหรือไม่
25 ตุลาคม 2569
Computer Organization and Design: พื้นฐานสถาปัตยกรรมคอมพิวเตอร์ ฉบับที่ 4 ปรับปรุงตำราของ David A. Patterson และ John L. Hennessy ว่าด้วยการทำงานของคอมพิวเตอร์ระหว่างฮาร์ดแวร์กับซอฟต์แวร์ ฉบับที่ 4 ปรับปรุง บทความนี้สรุปจากหน้าสำนักพิมพ์ Elsevier สารบัญ และข้อมูลแคตตาล็อก
