cuốn sách gpt4 ai đã làm

c# - Quy trình, luồng và nhóm luồng

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:41:34 31 4
mua khóa gpt4 Nike

đóng cửa. Câu hỏi này không đáp ứngNguyên tắc tràn ngăn xếp .Nó hiện không chấp nhận câu trả lời.












Bạn muốn cải thiện câu hỏi này? Cập nhật câu hỏi lên đúng chủ đềĐối với tình trạng tràn ngăn xếp.

Đóng cửa 8 năm trước




Cải thiện câu hỏi này




Tôi đang làm bài hướng dẫn về C# đa luồng, nhưng tôi không hiểu rõ bức tranh đầy đủ về các quy trình và luồng. Tôi biết rằng các luồng nằm trong các tiến trình, nhưng tôi không biết chính xác tiến trình là gì? Là một thể hiện của một lớp, một phương thức cụ thể và toàn bộ tệp hợp ngữ, nó là gì?
Câu hỏi này xuất hiện khi tôi thấy sự khác biệt giữa Lock và Mutex. Định nghĩa của lớp Mutex là... "Một nguyên tắc đồng bộ hóa cũng có thể được sử dụng để đồng bộ hóa giữa các quá trình..." và sau đó... Mutex là một nguyên tắc đồng bộ hóa mà tôi hơi bối rối về việc cấp quyền truy cập độc quyền đến một tài nguyên được chia sẻ cho một chủ đề? Tôi có sai khi nói rằng Mutex đồng bộ hóa các luồng từ các quy trình khác nhau không?

Về định nghĩa của ThreadPool là... "Nhóm luồng là tập hợp các luồng có thể được sử dụng để thực hiện nhiều tác vụ trong nền..." Đây là tập hợp các luồng từ cùng một tiến trình hay từ các tiến trình khác nhau?

câu trả lời hay nhất

  • Quá trình này là Tên miền ứng dụng của bộ sưu tập. 99% chương trình chỉ có 1 AppDomain
  • AppDomain là chủ đề và biến tĩnh bộ sưu tập.
  • Chuỗi là thứ thực thi một chuỗi hướng dẫn (mã của bạn) mà bạn có thể có trong AppDomain của mình
  • Chạy nhiều chuỗi hướng dẫn cùng lúc (nhiều luồng)
  • ThreadPool chỉ đơn giản là một tập hợp các luồng dành cho các tác vụ ngắn hạn được tái sử dụng thay vì "xóa" sau khi hoàn thành vì làm như vậy sẽ tạo ra gánh nặng nhỏ hơn cho tài nguyên hệ thống.
  • Khóa mutex được sử dụng để đảm bảo rằng hai luồng (từ bất kỳ tiến trình nào) không thể sử dụng tài nguyên được chia sẻ cùng một lúc, nếu tài nguyên đó không được lập trình để xử lý nhiều luồng truy cập đồng thời. Điều này có thể được thực hiện bằng cách đợi người khác hoàn thành trước khi tiếp tục (điều này được gọi là chặn) hoặc bằng cách không thực hiện thao tác nào cả.
  • Khóa giống như một "mutex đơn giản" chỉ thực hiện phương pháp "đợi cho đến khi người khác kết thúc". Nó dễ sử dụng hơn nhưng chỉ hoạt động trên một AppDomain duy nhất, do đó, nó không cung cấp khả năng bảo vệ trên nhiều AppDomain hoặc nhiều quá trình.

  • Cuối cùng, thay vì hỏi trực tiếp:
  • Tập hợp là một tập hợp mã được gói thành một tệp duy nhất, có thể có mã chạy nhiều AppDomain hoặc nhiều tệp (ví dụ như các tệp DLL và một exe) tất cả đều chạy trong một AppDomain. Không có mối quan hệ nào giữa Tập hợp và Chủ đề/Tên miền ứng dụng/Quy trình (tốt có một mối quan hệ Giữa AppDomains và Assemblies, đây là cách nó xử lý các biến tĩnh riêng lẻ. Nhưng đối với tất cả những gì bạn quan tâm, điều đó không thành vấn đề).
  • Về c# - quy trình, luồng và nhóm luồng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19408293/

    31 4 0
    không gian vũ trụ
    Hồ sơ

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá taxi Didi miễn phí
    Phiếu giảm giá taxi Didi
    Chứng chỉ ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
    Xem sitemap của VNExpress