2011-09-20 32 views
9

Tôi đang thử nghiệm với các chuỗi và sợi trong D và tôi đã tự hỏi liệu có thể chạy một Sợi trên một CPU khác với chuỗi chính đang chạy hay không. Và nếu đây không phải là trường hợp thì những gì sẽ là lý do của việc sử dụng sợi trên Chủ đề. (Ví dụ thực tế rất được hoan nghênh)Sợi trên Chủ đề trong D

Tôi đã cố gắng viết một số chương trình ban đầu với các sợi mà tôi chuyển sang sợi tiếp theo sau một thời gian. Làm thế nào tôi nhận thấy rằng việc sử dụng CPU vẫn chỉ trên một CPU.

Các tài liệu của D nói:

Xin lưu ý rằng không có yêu cầu rằng một sợi bị ràng buộc vào một chủ đề cụ thể. Thay vào đó, các sợi có thể được tự do chuyển giữa các chủ đề miễn là chúng hiện không thực thi.

Điều này có nghĩa là tôi phải cung cấp một sợi để sợi chạy trên nếu tôi muốn nó sử dụng một CPU khác? Nếu đây là trường hợp thì tôi không thấy mục đích.

Cảm ơn trước!

Trả lời

6

Bài viết này thực hiện một công việc rất hay khi so sánh hai. Getting more fiber in your diet.

+0

Cảm ơn, bài viết giải thích một cách độc đáo! –

8

Sợi là cơ chế gọn nhẹ cho đa nhiệm hợp tác và chạy trong cùng một luồng với người tạo/người gọi của họ. Nếu bạn cần chạy một tác vụ trên một CPU khác, hãy sử dụng các luồng. Mục đích của sợi là cung cấp chuyển đổi bối cảnh hợp tác nhanh và các cơ chế để thực hiện các mẫu như coroutines.

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