2010-02-10 28 views

Trả lời

1

Trong hầu hết các hệ thống Chủ đề trọng lượng nhẹ là chủ đề bình thường bạn tạo với sự trợ giúp của thư viện, như p_threads trong linux.

Trong khi trọng lượng nặng, trong một số hệ thống, hãy tham khảo quy trình hệ thống, với bộ nhớ ảo của riêng nó và cấu trúc phức tạp hơn, như thông tin về hiệu suất/thống kê quy trình.

Để biết thêm thông tin:

http://www.computerworld.com/s/article/66405/Processes_and_Threads

http://msdn.microsoft.com/en-us/library/ms684841(VS.85).aspx

25

Nó liên quan đến số lượng "bối cảnh" liên quan đến một chủ đề, và hậu quả là số lượng thời gian cần thiết để thực hiện một "bối cảnh chuyển đổi ".

Chủ đề hạng nặng, (thường là chủ đề cấp hạt nhân/cấp độ cao) có nhiều ngữ cảnh (thanh ghi phần cứng, ngăn xếp hạt nhân, v.v.). Vì vậy, phải mất rất nhiều thời gian để chuyển đổi giữa các chủ đề. Chủ đề hạng nặng cũng có thể có những hạn chế đối với chúng, ví dụ, trên một số hệ điều hành, luồng hạt nhân không thể được làm trống trước, có nghĩa là chúng không thể bị buộc phải chuyển sang cho đến khi chúng từ bỏ quyền kiểm soát.

Chủ đề nhẹ, mặt khác (thường là chủ đề không gian người dùng) có ngữ cảnh ít hơn nhiều. (Về cơ bản, họ chia sẻ cùng một bối cảnh phần cứng), họ chỉ cần lưu trữ bối cảnh của ngăn xếp người dùng, do đó thời gian để chuyển đổi các luồng nhẹ ngắn hơn nhiều.

Trên hầu hết các hệ điều hành, bất kỳ chủ đề nào bạn tạo dưới dạng lập trình viên trong không gian người dùng sẽ có trọng lượng nhẹ so với các luồng không gian hạt nhân. Không có định nghĩa chính thức về trọng lượng và trọng lượng nhẹ, nó chỉ là một sự so sánh giữa các luồng với nhiều bối cảnh và các luồng hơn với bối cảnh ít hơn. Đừng quên rằng mọi hệ điều hành đều có sự thực hiện khác nhau của các chủ đề khác nhau và các dòng giữa các luồng nặng và ánh sáng không nhất thiết phải được xác định rõ ràng. Trong một số ngôn ngữ lập trình và khuôn khổ, khi bạn tạo một "Chủ đề", bạn có thể thậm chí không nhận được một chủ đề đầy đủ, bạn chỉ có thể nhận được một số trừu tượng mà ẩn số lượng thực của các chủ đề bên dưới.

[Một số hệ điều hành cho phép chủ đề để chia sẻ không gian địa chỉ, vì vậy đề mà thường sẽ khá nặng nề, là hơi nhẹ]

4

đề tiêu chuẩn Java là hợp lý nặng so với đề Erlang được tiến trình spawnable rất nhẹ. Erlang thể hiện một máy trạng thái hữu hạn phân tán. Tuy nhiên, làm ví dụ, http://kilim.malhar.net/, thư viện tiện ích mở rộng Java dựa trên mô hình Diễn viên đồng thời, đề xuất cấu trúc cho các chuỗi trọng lượng nhẹ trong java. Thay vì Thread thực hiện run(), một luồng Kilim thực hiện từ thư viện Kilim bằng cách sử dụng phương thức execute(). Rõ ràng nó cho thấy thời gian chạy của Java tốt hơn Erlang (ít nhất là trong môi trường cục bộ AFAIK). Java đã thực sự có những thứ như vậy trong thông số ngôn ngữ gốc được gọi là 'các chủ đề màu xanh' nhưng các phiên bản Java tiếp theo đã thả chúng theo chủ đề gốc

Các vấn đề liên quan