Thread คืออะไร
Thread คือ หน่วยการทำงานย่อยที่อยู่ใน process มีการแบ่งปันทรัพยากรต่างๆ ใน process นั้นๆ โดยปกติ Process ที่มี 1 thread จะเรียกว่า Single thread หรือเรียกว่า Heavy Weight Process ซึ่งมักพบใน OS รุ่นเก่า แต่ถ้า 1 process มีหลาย thread จะเรียกว่า Multithread หรือ Light Weight Process ซึ่งพบได้ใน OS รุ้นใหม่ที่ใช้กันในปัจจุบันทั่วไป และ Multithread ก็เป็นที่นิยมมากกว่า Single thread
เหตุที่ต้องมี Thread คือการเรียกใช้ CPU ให้เกิดประโยชน์สูงสุด Thread ทำให้การทำงานของโปรแกรมง่าย และมีประสิทธิภาพมากขึ้นและมีประโยชน์ต่อระบบที่มี multi CPU หรือ multi core เพราะสามารถเรียกใช้ thread หลายๆ ตัวได้พร้อมๆ กัน โดย thread แต่ละตัว ของโปรเซส เดียวกันจะทำงานแตกต่างกันแต่มีความเกี่ยวข้องกันบางอย่างและต้องทำงานอยู่ภายใต้สภาพแวดล้อมเดียวกัน
องค์ประกอบภายในเธรด (Threads) ประกอบด้วย
1. Threads ID หมายเลขเทรดที่อยู่ในโปรเซส
2. Counter ตัวนับเพื่อติดตามคำสั่งที่จะถูกดำเนินการเป็นลำดับถัดไป (Execute)
3. Register หน่วยความจำเก็บค่าตัวแปรที่ทำงานอยู่ปัจจุบัน
4. Stack เก็บประวัติการทำงาน (Execute)
ประโยชน์ของมัลติเทรด ( Multi-Threads)
1. การตอบสนอง (Response) ในเรื่องของการทำงานมีการตอบสนองที่ดีกับผู้ใช้ (user) ถ้าการทำงานของ โปรแกรมประยุกต์ของผู้ใช้นั้นมีบางส่วนภายในโปรเซสถูกบล๊อกหรือใช้เวลามากเกินไป OS ก็ยังสามารถจัดสรรให้งานอื่น ๆ ภายในโปรเซสนั้นประมวลผลต่อไปได้
2. การใช้ทรัพยากรร่วมกัน (Share Resource) สามารถใช้โค้ม (code) ใช้โปรแกรม (application) และใช้หน่วยความจำ (memory) ร่วมกันระหว่างโปรเซสเดียวกันได้
3. ประหยัด (Economic) ประหยัดการใช้หน่วยความจำในการทำงานของโปรเซส เนื่องจากแต่ละเทรด (Thread) มีการใช้หน่วยความจำของโปรเซสร่วมกัน
4. ด้านโครงสร้างของมัลติเทรด (Multithread Architecture) การเอื้อประโยชน์ด้านโครงสร้างระบบ ที่งานย่อยภายในโปรเซสให้สามารถทำงานร่วมกัน ประสานจังหวะการทำงานและใช้ทรัพยากรของโปรเซสร่วมกันได้
ข้อมูลอ้างอิง
http://www.thaiall.com
http://www.no-poor.com
- คุณอยู่ที่:
- คู่มือ
- ความหมายคำ คืออะไร
- Thread คืออะไร เทรด คือหน่วยการทำงานย่อยของโปรเซส
บทความล่าสุด
- Ubuntu เขียน Script Update Public IP ไป DNS Record ของ Cloudflare
- Ubuntu เขียน Script Update Public IP ไป DNS Record ของ Cloudflare
- องค์ประกอบของ Dell OptiPlex 980 DT บอกส่วนประกอบของคอมพิวเตอร์รุ่นนี้
- เตรียมข้อมูลเขียน scrip อัพเดท Public IP ผ่าน DNS Cloudflare อย่างไร
- สมัครพร้อมลงทะเบียน โดเมน ของ Cloudflare ยังไง ?
- Get Munch สร้างคลิปสั้นด้วยเอไอ
- Config Static IP Address บน Windows 11 ฉบับง่าย
VDO บทเรียน live
สอนเขียนโปรแกรม
- บทเรียน MySQL Store Procedure (14)
- บทเรียน PostgreSQL Stored Procedures (5)
- บทเรียน Phalcon Framework (0)
- บทเรียน Python Framework Flask (21)
- บทเรียน HTML (39)
- บทเรียน HTML5 (31)
- บทเรียน CSS (64)
- บทเรียน Bootstrap (7)
- บทเรียน สอนเขียน php พื้นฐาน (49)
- บทเรียน ReactJS (13)
- บทเรียน PHP5 OOP (19)
- บทเรียน Joomla Framework พัฒนา Extension จุมล่า (33)
- บทเรียน Yii Framework (21)
- บทเรียน SQL (28)
- บทเรียน สอนการใช้งาน phpMyadmin (19)
- บทเรียน สอน PostgreSQL (23)
- บทเรียน Javascript (22)
- บทเรียน AJAX (10)
- บทเรียน jQuery (14)
- บทเรียน พัฒนา App บน Android OS (9)
- บทเรียน Python (58)
- บทเรียน Python GUI (145)
- บทเรียน Python Framework FastAPI (23)
- บทเรียน Python Tensorflow (14)
- บทเรียน Java (14)
- เรียนภาษาอังกฤษกับโปรแกรมเมอร์ ฉบับโปรแกรมเมอร์สอน (32)
- บทเรียนอื่นๆ (4)
- VDO Tutorial (0)
- บทเรียน Laravel Framework (6)
- บทเรียน Joomla 3 Framework พัฒนา Extension จุมล่า (16)
- บทเรียน Dart & Flutter (5)
- บทเรียน Joomla 4 Framework พัฒนา Extension จุมล่า Web Service (0)
เนื้อหาใกล้เคียง
- 2557-04-22 - PhoneGap คืออะไร PhoneGap เป็น Framework พัฒนา Mobile Application
- 2557-04-11 - WordPress : การใช้งานเมนู เรื่อง
- 2552-02-12 - php Unix Timestamp คืออะไร เวลาในหน่วยวินาทีของวัน วันวาเลนไทน์ Valentine 1234567890
- 2549-11-18 - การตรวจดู Webbrowser ของผู้มาเยือนว่าเป็นตัวไหน ด้วย PHP
- 2557-04-13 - Hosting ที่ Mindphp.com ใช้อยู่ ตรวจสอบแล้วไม่มีปัญหา ช่องโหว่ Heartbleed
กระทู้ล่าสุดจากเว็บบอร์ด