Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa Process và Thread trong Java

Trong bài viết này, chúng ta sẽ tìm hiểu sự khác biệt giữa Process (tiến trình) và Thread (luồng) trong Java.

Process

  • Là chương trình đang thực thi
  • Tốn nhiều thời gian để tạo, kết thúc, chuyển ngữ cảnh (context switch)
  • Tiêu tốn nhiều tài nguyên hệ thống
  • Kém hiệu quả về giao tiếp (communication)
  • Đặc tính cách ly (isolated)
  • Còn gọi là heavy-weight process
  • Chuyển process dùng system call qua OS interface
  • Nếu một server process bị block, các process khác không chạy được
  • Có Process Control Block, Stack, Address Space riêng

Thread

  • Là đoạn (segment) của process
  • Tốn ít thời gian để tạo, kết thúc, chuyển ngữ cảnh
  • Tiêu tốn ít tài nguyên hơn
  • Chia sẻ bộ nhớ (shared memory)
  • Còn gọi là light-weight process
  • Hiệu quả hơn về giao tiếp
  • Chuyển thread KHÔNG cần system call
  • Không làm gián đoạn kernel
  • Khi một server thread block, thread khác vẫn chạy được
  • Dùng Process Control Block của parent, có Thread Control Block, Stack, Common Address Space riêng