Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างกระบวนการและเธรดใน Java


ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่างกระบวนการและเธรดใน Java

กระบวนการ

  • หมายถึงโปรแกรมที่กำลังดำเนินการ

  • การสร้างกระบวนการต้องใช้เวลามากขึ้น

  • ต้องใช้เวลานานกว่าจะยุติ

  • ต้องใช้เวลามากขึ้นในการเปลี่ยนบริบท

  • มันกินทรัพยากรของระบบมากขึ้น

  • มีประสิทธิภาพน้อยกว่าในแง่ของการสื่อสาร

  • เป็นลักษณะเฉพาะ

  • เรียกอีกอย่างว่ากระบวนการที่มีน้ำหนักมาก

  • เมื่อเปลี่ยนจากกระบวนการหนึ่งไปอีกกระบวนการหนึ่ง จะใช้อินเทอร์เฟซในระบบปฏิบัติการ

  • หากกระบวนการของเซิร์ฟเวอร์ถูกบล็อก กระบวนการของเซิร์ฟเวอร์อื่นจะไม่สามารถดำเนินการได้จนกว่ากระบวนการก่อนหน้าจะถูกยกเลิก

  • มี Process Control Block, Stack และ Address Space เป็นของตัวเอง

กระทู้

  • หมายถึงส่วนของกระบวนการ

  • ใช้เวลาน้อยลงในการสร้างกระบวนการ

  • ใช้เวลาน้อยลงในการยกเลิก

  • ใช้เวลาน้อยลงในการเปลี่ยนบริบท

  • ใช้ทรัพยากรของระบบน้อยลง

  • พวกเขายังแบ่งปันความทรงจำ

  • เป็นที่รู้จักกันว่าเป็นกระบวนการที่มีน้ำหนักเบา

  • มีประสิทธิภาพในการสื่อสารมากขึ้น

  • การเปลี่ยนจากเธรดหนึ่งเป็นเธรดอื่นไม่จำเป็นต้องมีการเรียกใช้ระบบปฏิบัติการ

  • ไม่ขัดจังหวะเคอร์เนล

  • เมื่อเธรดเซิร์ฟเวอร์หนึ่งถูกบล็อก เธรดที่สองสามารถรันในงานเดียวกันได้

  • ใช้ Process Control Block ของผู้ปกครอง

  • มันใช้ Thread Control Block, Stack และ Common Address Space ของตัวเอง