Trong lập trình ổ cắm, bạn tạo một ổ cắm lắng nghe và sau đó đối với mỗi máy khách kết nối, bạn sẽ có một ổ cắm luồng bình thường mà bạn có thể sử dụng để xử lý yêu cầu của khách hàng. Hệ điều hành quản lý hàng đợi các kết nối đến đằng sau hậu trường.
Hai tiến trình không thể liên kết với cùng một cổng cùng một lúc - theo mặc định.
Tôi tự hỏi liệu có cách nào (trên bất kỳ hệ điều hành nổi tiếng nào, đặc biệt là Windows) để khởi chạy nhiều phiên bản của một quy trình, sao cho tất cả chúng đều liên kết với socket và do đó chúng chia sẻ hàng đợi một cách hiệu quả. Mỗi cá thể quy trình sau đó có thể là một luồng đơn; nó sẽ chỉ chặn khi chấp nhận một kết nối mới. Khi một máy khách được kết nối, một trong các phiên bản quy trình không hoạt động sẽ chấp nhận máy khách đó.
Điều này sẽ cho phép mỗi quy trình có một triển khai đơn luồng rất đơn giản, không chia sẻ gì trừ khi thông qua bộ nhớ được chia sẻ rõ ràng và người dùng có thể điều chỉnh băng thông xử lý bằng cách bắt đầu nhiều phiên bản hơn.
Tính năng như vậy có tồn tại không?
Chỉnh sửa: Đối với những người hỏi "Tại sao không sử dụng chủ đề?" Rõ ràng chủ đề là một lựa chọn. Nhưng với nhiều luồng trong một quy trình, tất cả các đối tượng đều có thể chia sẻ được và cần phải hết sức cẩn thận để đảm bảo rằng các đối tượng hoặc không được chia sẻ hoặc chỉ hiển thị với một luồng tại một thời điểm hoặc hoàn toàn bất biến và các ngôn ngữ phổ biến nhất và thời gian chạy thiếu hỗ trợ tích hợp để quản lý sự phức tạp này.
Bằng cách bắt đầu một số ít các quy trình worker giống nhau, bạn sẽ nhận được một hệ thống đồng thời, trong đó mặc định là không chia sẻ, giúp dễ dàng hơn nhiều trong việc xây dựng triển khai đúng và có thể mở rộng.