Chủ đề tuyệt vời để phân phối công việc và để tránh điều gì đó đang chờ đợi điều gì đó xảy ra mà không thực sự quan trọng nếu chúng ta chờ đợi ngay bây giờ. Vì vậy, sử dụng chủ đề chắc chắn là một ý tưởng tốt cho thiết kế của bạn.
Làm thế nào để có bao nhiêu chủ đề bạn nên có, và cho dù đó là "có giá trị" có chủ đề nhiều hơn hoặc ít hơn? Đó là một câu hỏi phức tạp hơn nhiều để trả lời. Đối với các chủ đề chuyên sâu của CPU, thực sự không có điểm nào có nhiều lõi CPU trong hệ thống, vì bạn sẽ không nhận được nhiều công việc hơn bằng cách có thêm các chủ đề nữa. vì phần mềm quá phức tạp và hy vọng bạn không đạt được điều đó ...]
Đối với những thứ chờ đợi và do đó không sử dụng nhiều CPU, số lượng chủ đề sẽ nhiều hơn "bất kỳ điều gì làm cho nó dễ dàng để xử lý trong mã "- rõ ràng, có hàng ngàn có lẽ là một ý tưởng tồi, nhưng một hoặc hai hoặc ba sẽ không tạo ra nhiều sự khác biệt. Bạn rõ ràng sẽ có cùng một vấn đề với "làm thế nào để tôi nói cho các chủ đề phải làm gì tiếp theo, và khi nào tôi cần phải chờ kết quả ...", vv Một luồng nhàn rỗi không "làm" nhiều cho hệ thống hiệu suất - nó chiếm một lượng nhỏ bộ nhớ ngăn xếp và số lượng dữ liệu điều khiển luồng thậm chí nhỏ hơn, nhưng đó là một số lượng nhỏ mà nó không thực sự quan trọng nếu bạn không có số lượng khổng lồ.
Tóm lại, có lẽ là "rất nhiều tiếng la hét vì rất ít len" khi người đàn ông mù nói khi ông cắt con lợn - nói cách khác, rất nhiều công việc, không có nhiều lợi ích.
Nguồn
2012-12-22 15:05:06
* "Đây có phải là một tối ưu hóa đáng giá không?" * - có thể là không. – Pubby
std :: thread nằm trong tiêu chuẩn. Hãy suy nghĩ về việc sử dụng này. –
std :: thread không hoạt động đúng trên hệ thống Windows. Đó là chức năng tương tự như boost :: thread anyways, vì vậy nếu tôi cần phải chuyển đổi qua là dễ dàng. – jmegaffin