Wednesday, December 4, 2013

Java - Concurrent 1

Process và Thread

  • Trong lập trình concurrent có hai đối tượng thực thi cơ bản: process và thread. 
  • Thông thường một hệ thông máy có nhiều process và thread hoạt động. 
  • Thời gian xử lý cho một single cỏe được chia sẽ giữa các process thông qua một tính năng của OS được gọi là time slicing
Process
  • Một process chứa một môi trường thực thi.
  • Một process có đầy đủ, tập hợp cơ bản tài nguyên run-time riêng, mỗi process có bộ nhớ riêng
  • Process đồng nghĩa với programs và application
  • Để hỗ trợ giao tiếp giữa các process, hầu hết các hệ điều hành đều support Inter Process Communiacation(IPC) như là pipes và sockets
  • IPC không chi được dùng để giao tiếp giữa các process trong cùng một hệ thống và còn với các process ở hệ thống khác.
Thread
  • Đôi khi được gọi là lightweight process. 
  • Cả thread và process đều cung cấp một môi trường thực thi, nhưng khởi tạo một thread tốn ít tai nguyên hơn là khởi tạo process.
  • Thread tồn tại bên trong process, mỗi process có it nhất một thread.
  • Các thread chia sẻ tài nguyên của process, bao gồm memory và các tệp tin.
  • Mỗi ứng dụng java đều có một hoặc nhiều thread. Nhưng theo quan điểm lập trình viên bạn bắt đầu mới chỉ một thread được gọi là main thread. Thread này có khả năng tạo thêm nhiều thread