5, 100, 1000?Có bao nhiêu luồng đồng thời trong một ứng dụng?
Tôi đoán, "nó phụ thuộc", nhưng về cái gì?
Điều gì phổ biến trong các ứng dụng chạy dưới dạng trình nền/dịch vụ máy chủ?
Giới hạn cứng là gì?
Cho rằng máy có thể xử lý khối lượng công việc tổng thể, làm thế nào để tôi xác định xem có bao nhiêu luồng trên không bắt đầu có tác động đến hiệu suất?
Điểm khác biệt quan trọng giữa hệ điều hành là gì?
Điều gì khác cần được xem xét?
Tôi hỏi vì tôi muốn sử dụng các luồng trong ứng dụng để sắp xếp các thành phần phụ của ứng dụng không chia sẻ dữ liệu và được thiết kế để thực hiện công việc của chúng song song. Vì ứng dụng cũng sẽ sử dụng các nhóm luồng để song song một số nhiệm vụ, tôi đã tự hỏi tại thời điểm nào tôi nên bắt đầu nghĩ về số lượng các luồng sẽ chạy tổng cộng.
Tôi biết quy tắc n + 1 là hướng dẫn để xác định số lượng chuỗi đồng thời hoạt động trên cùng một tác vụ để đạt được hiệu suất. Tuy nhiên, tôi muốn sử dụng các chủ đề giống như một quy trình có thể sử dụng các quy trình trong phạm vi rộng hơn, i. e. để tổ chức các nhiệm vụ độc lập không nên can thiệp lẫn nhau.
Trong this related question, một số người khuyên bạn nên giảm thiểu số lượng chủ đề vì độ phức tạp được thêm vào. Với tôi, dường như các chủ đề cũng có thể giúp giữ cho mọi thứ được sắp xếp trật tự hơn và thực sự giảm nhiễu. Đúng không?
Có lẽ bạn có thể đăng thêm thông tin về môi trường hoạt động của mình? Kiến trúc CPU, kích thước không gian địa chỉ, hệ điều hành, các mẫu sử dụng ứng dụng, tải dự kiến - những điều này tạo ra tất cả sự khác biệt trên thế giới. –
Không, xin lỗi, điều đó thực sự sẽ nằm ngoài quan điểm của tôi. Ứng dụng tôi đang viết được thiết kế cho một số môi trường và tôi muốn biết những điều tôi nên tìm kiếm, vì vậy tôi có thể đánh giá tốt hơn các vấn đề môi trường cụ thể. –