ให้เรตสมาชิก: 5 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 
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
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
เรื่องจริงที่ Developer ทุกคนเคยเจอ
16
Before Dong 9:32 am
ภาพความฝัน กับความจริง ตอนรันโปรแกรม รันกราฟโชว์ผลงาน
86
Before Dong 19 ต.ค. 2017 10:30 am
อยากหัดเขียนโปรแกรมเซฟรูปจากห้องแชทในไลน
8
pwbank 19 ต.ค. 2017 11:59 pm
เขียนโค้ดยังไงให้จับคู่ตัวเลขทุกตัว โดยใช้ javascript เท่านั้น
6
mybbb 19 ต.ค. 2017 9:59 pm
ตัวอย่างการใช้คำสั่ง time.sleep() ใน Selenium
17
paoonline 19 ต.ค. 2017 6:58 pm
ติดตั้ง จูมช็อบปิ้งไม่ได้ครับ Error
15
chungchai 18 ต.ค. 2017 7:54 pm
ตัวอย่าง การดึงข้อมูลเวลาวันที่จากฐานข้อมูลมาแปลงเป็นรูปแบบ Date Time(เดททาม) สากล
33
paoonline 18 ต.ค. 2017 4:05 pm
ยกเลิก Class ชื่อ JDocumentRendererHead ในเวอร์ชั่น 3.8.0 ขึ้นไป ทำให้เกิด Error ที่หน้าเว็บไซต์
15
tsukasaz 18 ต.ค. 2017 3:58 pm
เส้นทางที่โรยด้วย กลีบกุหลาบ ของโปรแกรมเมอร์
143
Before Dong 18 ต.ค. 2017 11:29 am
คำสั่ง ดู พื้นที่ใน Folder Linux
35
mindphp 17 ต.ค. 2017 9:42 pm
สอบถามไม่สามารถใช้ Selenium IDE ใน Firefox ได้ครับ
33
paoonline 17 ต.ค. 2017 4:39 pm
สอบถามถ้าต้องการเช็คค่าที่เป็นจุดทศนิยมเเล้วต้องการปัดลงจะทำยังไงได้บ้างค่ะ
64
thatsawan 17 ต.ค. 2017 1:42 pm
Project Manager VS Developer - เมื่อประชุมทีมพัฒนา
73
Before Dong 17 ต.ค. 2017 10:41 am
หนังสือส่งมอบงาน +คู่มือ+วีดีโอ+Cheklist - อะเมริซีด อินเตอร์เนชัน แนล จำกัด
2
M029 16 ต.ค. 2017 3:53 pm
Project Manager VS Developer - เมื่อต้อง set demo เว็บไซต์
1236
Before Dong 16 ต.ค. 2017 11:15 am
แก้ปัญหา PGSQL FATAL: sorry, too many clients already.
46
mindphp 14 ต.ค. 2017 1:35 am
จะสร้าง FTP account ใน cpanel ยังไง พอมีวิธ๊แนะนำมั้ย
44
โดย บุคคลทั่วไป 13 ต.ค. 2017 11:04 pm
อยากสอบถามวิธีการเพิ่ม user เข้าใช้งาน cpanel
63
โดย บุคคลทั่วไป 13 ต.ค. 2017 10:49 pm
แก้ปัญหา ลบฐานข้อมูลใน PostgreSQL ด้วยคำสั่ง dropdb ไม่ได้
42
mindphp 13 ต.ค. 2017 9:10 pm
Php. ไม่สามารถอ่านค่าที่ส่งมาจาก vb(c#)ได้
66
Note Pookinghin 12 ต.ค. 2017 7:19 pm