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

ความแตกต่างระหว่าง Process และ Thread ใน Java

Process

  • โปรแกรมที่กำลังทำงาน (Program in execution)
  • สร้างช้า, จบช้า, Context switch ช้า
  • ใช้ทรัพยากรระบบมาก (Heavy-weight)
  • Communication ระหว่าง Process ยาก (IPC)
  • Isolated: มี PCB, Stack, Address Space ของตัวเอง
  • ถ้า Process หนึ่ง blocked อื่นๆ รอได้

Thread

  • ส่วนย่อยของ Process (Light-weight process)
  • สร้างเร็ว, จบเร็ว, Context switch เร็ว
  • ใช้ทรัพยากรน้อย แชร์ Memory กับ Thread อื่นใน Process เดียวกัน
  • Communication ง่าย (Shared memory)
  • มี Thread Control Block, Stack, แต่แชร์ Address Space และ PCB กับ Process หลัก
  • Thread หนึ่ง blocked Thread อื่นยังทำงานได้
  • Switch ไม่ต้องเรียก OS

สรุป

คุณสมบัติProcessThread
น้ำหนักHeavy-weightLight-weight
Memoryแยกต่างหากแชร์กัน
Context Switchช้า (ผ่าน OS)เร็ว (ไม่ต้อง OS)
Communicationยาก (IPC)ง่าย (Shared memory)
Isolationเต็มรูปแบบบางส่วน