Tiêu đề có thể không đủ rõ ràng vì tôi không biết cách xác định câu hỏi của mình.Thư viện Pthread có thực sự là giải pháp chủ đề người dùng không?
Tôi hiểu Pthread là thư viện chuỗi đáp ứng tiêu chuẩn POSIX (về POSIX, xem wikipedia: http://en.wikipedia.org/wiki/Posix). Nó có sẵn trong hệ điều hành giống Unix.
Về chủ đề, tôi đọc rằng có ba mô hình khác nhau:
tài mức chủ đề: hạt nhân không biết điều đó. Người dùng tự tạo/thực hiện/hủy các luồng.
Chủ đề cấp hạt nhân: hạt nhân trực tiếp hỗ trợ nhiều luồng điều khiển trong một quy trình.
Quy trình trọng lượng nhẹ (LWP): được lên lịch bởi hạt nhân nhưng có thể được giới hạn với chuỗi người dùng.
Bạn có thấy sự nhầm lẫn của tôi không? Khi tôi gọi pthread_create()
để tạo chuỗi, tôi có tạo chuỗi cấp người dùng không? Tôi đoán vậy. Vì vậy, tôi có thể nói, Pthread cung cấp một giải pháp mức người dùng cho các chủ đề? Nó không thể thao tác hạt nhân/LWP?
Bạn đang tạo ra một số sự nhầm lẫn ở đây? 1. Original Poster chưa bao giờ hỏi về các chi tiết cụ thể của Linux 2. Kernel không biết mọi thứ, đặc biệt là trong ngữ cảnh của User Level Threads, bởi vì chúng không được sắp xếp theo kernel, chúng khá "chuyển" qua thư viện, Pthreads trong trường hợp này. 3. Thuật ngữ "Chủ đề" là chung chung. Đúng, nhưng, câu hỏi là nhiều hơn về hệ điều hành và giao diện ứng dụng trong bối cảnh của chủ đề, câu trả lời nên được về trừu tượng nói. –
Thật vậy, câu trả lời này là chỉ bằng phẳng sai. Hạt nhân không * không * biết về các luồng không gian người dùng; nếu tạo một luồng yêu cầu thông báo cho kernel về nó (thông qua một syscall), thì các luồng của bạn sẽ không còn là "userspace" nữa. Câu trả lời đúng ở đây bao gồm http://stackoverflow.com/a/12169068/1424877 và http://stackoverflow.com/a/27581327/1424877; và http://stackoverflow.com/a/8639239/1424877 là một biểu hiện tốt đẹp của các phần chính xác của câu trả lời này (nhưng thiếu các chi tiết Linux để làm cho các chi tiết khác thực sự hữu ích cho OP). – Quuxplusone