Hướng dẫn when to use python threads - khi nào sử dụng chuỗi python
Tôi có một dự án cho công việc. Chúng tôi đã viết một mô -đun và ở đó như một #Todo để triển khai luồng để cải thiện mô -đun. Tôi là một lập trình viên Python khá mới và quyết định đánh một cú đánh vào đó. Trong khi học và thực hiện luồng, tôi đã có câu hỏi tương tự như có bao nhiêu chủ đề là quá nhiều? Bởi vì chúng tôi có một hàng đợi khoảng 6 đối tượng cần được xử lý, vậy tại sao lại tạo 6 luồng (hoặc bất kỳ luồng nào) để xử lý các đối tượng trong danh sách hoặc hàng đợi khi thời gian xử lý không đáng kể? (Mỗi đối tượng mất nhiều nhất khoảng 2 giây để xử lý) Show Vì vậy, tôi đã chạy một thí nghiệm nhỏ. Tôi muốn biết nếu có mức tăng hiệu suất từ việc sử dụng luồng. Xem mã Python của tôi bên dưới:
Thử nghiệm này tìm thấy các số nguyên tố trong khoảng từ 1 đến 10000. Thiết lập này được lấy khá nhiều từ https://www.tutorialspoint.com/python3/python_multithreading.htms nhưng thay vì in một chuỗi đơn giản, tôi hỏi các chủ đề để tìm các số nguyên tố chính để tìm các số nguyên tố chính để tìm các số nguyên tố để tìm các số nguyên tố để tìm số nguyên tố để tìm số nguyên tố để tìm số nguyên tố để tìm . Đây thực sự không phải là ứng dụng trong thế giới thực của tôi nhưng hiện tại tôi không thể kiểm tra mã tôi đã viết cho mô -đun. Tôi nghĩ rằng đây là một thử nghiệm tốt để đo lường hiệu quả của các chủ đề bổ sung. Ứng dụng trong thế giới thực của tôi liên quan đến việc nói chuyện với nhiều thiết bị nối tiếp. Tôi đã chạy bài kiểm tra 5 lần và trung bình thời gian. Dưới đây là kết quả trong một biểu đồ: Các câu hỏi của tôi liên quan đến luồng và bài kiểm tra này như sau:
Tôi nhận thấy rằng khi tỷ lệ công việc trên luồng trở nên gần với 1: 1, thời gian thực hiện để thiết lập các luồng trở nên dài hơn. Vì vậy, việc chỉ có hữu ích khi bạn tạo các chủ đề một lần và giữ cho chúng tồn tại càng lâu càng tốt để xử lý các yêu cầu có thể enqueue nhanh hơn chúng có thể được tính toán? Khi nào tôi nên sử dụng chủ đề?Chủ đề rất hữu ích trong lập trình hiện đại bất cứ khi nào một quy trình có nhiều nhiệm vụ để thực hiện độc lập với các quy trình khác.Điều này đặc biệt đúng khi một trong các nhiệm vụ có thể chặn và mong muốn cho phép các nhiệm vụ khác tiến hành mà không chặn.whenever a process has multiple tasks to perform independently of the others. This is particularly true when one of the tasks may block, and it is desired to allow the other tasks to proceed without blocking.
Khi nào bạn không nên sử dụng chủ đề?Một lý do để không sử dụng đa luồng là: có một nhiệm vụ và không có giao diện người dùng nào mà tác vụ sẽ can thiệp.There is one task, and no user interface with which the task will interfere.
Tôi nên sử dụng bao nhiêu chủ đề?Nói chung, Python chỉ sử dụng một luồng để thực thi tập hợp các câu lệnh bằng văn bản.Điều này có nghĩa là trong Python, chỉ có một luồng sẽ được thực thi tại một thời điểm.one thread to execute the set of written statements. This means that in python only one thread will be executed at a time.
Có phải luồng trong Python tốt không?Để tóm tắt lại, luồng trong Python cho phép nhiều luồng được tạo trong một quy trình duy nhất, nhưng do Gil, không ai trong số chúng sẽ chạy cùng một lúc.Chủ đề vẫn là một lựa chọn rất tốt khi chạy nhiều tác vụ ràng buộc I/O đồng thời.Threading is still a very good option when it comes to running multiple I/O bound tasks concurrently. |