Hãy xem xét quy trình tạo nhiều miền ứng dụng. Các miền ứng dụng có chia sẻ cùng một nhóm luồng không? Nếu có, nó được phối hợp như thế nào giữa nhiều miền ứng dụng?Threadpool có được chia sẻ giữa các miền ứng dụng không?
Trả lời
Các ThreadPool được chia sẻ trên tất cả các appdomains - kể từ đó có nghĩa là chủ đề có thể kết thúc chuyển đổi giữa appdomains có Đã làm việc Perf xung quanh đó (có khả năng thường!):
http://blogs.msdn.com/b/ericeil/archive/2009/04/23/clr-4-0-threadpool-improvements-part-1.aspx
[...] Trên thực tế, chúng tôi đã vi phạm “quy tắc” này : từ ngày 3.5 trở lên, CLR nhóm luồng đã duy trì riêng biệt hàng đợi FIFO cho mỗi AppDomain trong quy trình và thêm hàng đợi độc lập FIFO cho công việc "gốc" tem chẳng hạn như xếp hàng theo máy chủ (ASP.net là người dùng chính của tính năng này). Chúng tôi round-robin giữa những hàng đợi công việc, cho phép từng thực hiện công việc cho một số thời gian trước khi chuyển sang tiếp theo. [...]
BTW, lưu ý rằng nói đúng ThreadPool không được chia sẻ trên toàn bộ quá trình nữa, kể từ khi CLR v4 cho phép tải side-by-side với V2, và mỗi sẽ có threadpool riêng của nó.
Không chắc chắn 100%, nhưng tôi nghĩ hồ sơ luồng là một lần cho mỗi quá trình, không phải một lần cho mỗi AppDomain. Hãy thử xem bài viết này trên thread & appdomain:
Threadpool được chia sẻ giữa tất cả các miền ứng dụng, vì mỗi luồng threadpool là thuyết bất khả tri và toàn bộ hồ sơ thời gian chạy trên luồng chủ yếu phụ thuộc vào phần cứng bạn đang chạy (# procs, hyperthreading và như vậy)
Có một nhóm luồng cho mỗi quy trình. Nhóm chủ đề có kích thước mặc định là 25 luồng trên mỗi bộ xử lý có sẵn. Số lượng chủ đề trong chủ đề có thể thay đổi bằng cách sử dụng phương thức SetMaxThreads. Mỗi chuỗi sử dụng kích thước ngăn xếp mặc định và chạy ở mức ưu tiên mặc định là .
Nguồn: http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx
Nếu tôi nhớ không lầm thì CLR xử lý các chủ đề threadpool nội bộ và làm sạch khuôn khổ chủ đề trước khi phục vụ một yêu cầu công việc.
- 1. Chia sẻ phiên giữa hai miền
- 2. App Engine - Memcache có được chia sẻ giữa các phiên bản của một ứng dụng không?
- 3. Chia sẻ các mô hình giữa các ứng dụng Django
- 4. Chia sẻ cookie giữa tên miền phụ và miền
- 5. C++ threadpool với bộ nhớ chỉ đọc được chia sẻ
- 6. Biến tĩnh có được chia sẻ giữa các luồng không?
- 7. Chia sẻ dữ liệu giữa các ứng dụng trên iDevice
- 8. Cách chia sẻ đối tượng giữa các ứng dụng java?
- 9. Cài đặt chia sẻ giữa các ứng dụng
- 10. Chia sẻ bảo mật giữa các ứng dụng web
- 11. Phiên chia sẻ trên miền
- 12. Cách chia sẻ logic nghiệp vụ giữa nhiều ứng dụng
- 13. Nhiều ứng dụng có mã chia sẻ
- 14. Hai ứng dụng có UserID được chia sẻ
- 15. Có thể chia sẻ cookie giữa tên miền và tên miền phụ
- 16. Các thư viện được chia sẻ có sử dụng cùng một vùng với ứng dụng không?
- 17. Chia sẻ phiên giữa webservice và ứng dụng asp.net
- 18. Chia sẻ một đối tượng được tuần tự hóa giữa các ứng dụng
- 19. Ứng dụng iOS có chia sẻ khung công tác không?
- 20. Có thể chia sẻ cookie giữa các tên miền phụ 'một số'?
- 21. Chia sẻ một HttpModule giữa nhiều ứng dụng con mà không có GAC
- 22. Mô hình ZF2 được chia sẻ giữa các Mô-đun
- 23. Bộ nhớ tệp được chia sẻ cho Ứng dụng Rails
- 24. Ví dụ chia sẻ RSpec không được chia sẻ
- 25. Chia sẻ dữ liệu riêng tư giữa các ứng dụng iOS có ID nhóm khác nhau
- 26. Chia sẻ URL trong ứng dụng web
- 27. Phiên chia sẻ PHP trên miền
- 28. Trong Java, các thành viên lớp tĩnh có được chia sẻ giữa các chương trình không?
- 29. Tài nguyên nào được chia sẻ giữa các luồng?
- 30. resx chia sẻ giữa các dự án
Đây là liên kết đến tài liệu mới nhất cho .NET 4. http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx. Có 250 chuỗi công nhân cho mỗi bộ xử lý có sẵn. – btlog