ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่างกระบวนการและเธรดใน Java
กระบวนการ
-
หมายถึงโปรแกรมที่กำลังดำเนินการ
-
การสร้างกระบวนการต้องใช้เวลามากขึ้น
-
ต้องใช้เวลานานกว่าจะยุติ
-
ต้องใช้เวลามากขึ้นในการเปลี่ยนบริบท
-
มันกินทรัพยากรของระบบมากขึ้น
-
มีประสิทธิภาพน้อยกว่าในแง่ของการสื่อสาร
-
เป็นลักษณะเฉพาะ
-
เรียกอีกอย่างว่ากระบวนการที่มีน้ำหนักมาก
-
เมื่อเปลี่ยนจากกระบวนการหนึ่งไปอีกกระบวนการหนึ่ง จะใช้อินเทอร์เฟซในระบบปฏิบัติการ
-
หากกระบวนการของเซิร์ฟเวอร์ถูกบล็อก กระบวนการของเซิร์ฟเวอร์อื่นจะไม่สามารถดำเนินการได้จนกว่ากระบวนการก่อนหน้าจะถูกยกเลิก
-
มี Process Control Block, Stack และ Address Space เป็นของตัวเอง
กระทู้
-
หมายถึงส่วนของกระบวนการ
-
ใช้เวลาน้อยลงในการสร้างกระบวนการ
-
ใช้เวลาน้อยลงในการยกเลิก
-
ใช้เวลาน้อยลงในการเปลี่ยนบริบท
-
ใช้ทรัพยากรของระบบน้อยลง
-
พวกเขายังแบ่งปันความทรงจำ
-
เป็นที่รู้จักกันว่าเป็นกระบวนการที่มีน้ำหนักเบา
-
มีประสิทธิภาพในการสื่อสารมากขึ้น
-
การเปลี่ยนจากเธรดหนึ่งเป็นเธรดอื่นไม่จำเป็นต้องมีการเรียกใช้ระบบปฏิบัติการ
-
ไม่ขัดจังหวะเคอร์เนล
-
เมื่อเธรดเซิร์ฟเวอร์หนึ่งถูกบล็อก เธรดที่สองสามารถรันในงานเดียวกันได้
-
ใช้ Process Control Block ของผู้ปกครอง
-
มันใช้ Thread Control Block, Stack และ Common Address Space ของตัวเอง