Hướng dẫn what does threading lock do python? - khóa luồng làm gì python?
Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các điều kiện chủng tộc và cách sử dụng đối tượng khóa phân trăn để ngăn chặn chúng.: in this tutorial, you’ll learn about the race conditions and how to use the Python threading Lock object to prevent them. Show
Tình trạng cuộc đua là gìMột điều kiện cuộc đua xảy ra khi hai luồng cố gắng truy cập đồng thời một biến được chia sẻ. Chủ đề đầu tiên đọc giá trị từ biến được chia sẻ. Chủ đề thứ hai cũng đọc giá trị từ cùng một biến được chia sẻ. Sau đó, cả hai luồng cố gắng thay đổi giá trị của biến được chia sẻ. Và họ đua để xem chủ đề nào viết một giá trị cho biến cuối cùng. Giá trị từ luồng ghi vào biến được chia sẻ cuối cùng được bảo tồn vì nó ghi đè lên giá trị mà chủ đề trước đó đã viết. Ví dụ về điều kiện chủng tộcVí dụ sau đây minh họa một điều kiện chủng tộc:
Trong chương trình này, cả hai luồng đều cố gắng sửa đổi giá trị của biến 6 cùng một lúc. Giá trị của biến 6 phụ thuộc vào luồng nào hoàn thành cuối cùng. Nếu luồng 8 hoàn thành trước luồng 9, bạn sẽ thấy đầu ra sau:
Nếu không, bạn sẽ thấy đầu ra sau:
Làm thế nào nó hoạt động. Đầu tiên, nhập lớp 0 từ mô -đun 1 và hàm 2 từ mô -đun 3:
Thứ hai, xác định một biến toàn cầu được gọi là 6 có giá trị bằng không:
Thứ ba, xác định một hàm tăng giá trị của biến 6 theo một số:
Thứ tư, tạo hai chủ đề. Chủ đề thứ nhất tăng 6 lên 10 trong khi luồng thứ hai tăng 6 lên 20:
Thứ năm, bắt đầu các chủ đề:
Thứ sáu, từ chủ đề chính, đợi các luồng T1 và T2 hoàn thành:
Cuối cùng, hiển thị giá trị cuối cùng của biến 6:
Sử dụng khóa để ngăn chặn tình trạng cuộc đuaĐể ngăn chặn các điều kiện chủng tộc, bạn có thể sử dụng lớp 9 từ mô -đun 1. Một khóa có hai trạng thái: khóa và mở khóa. Đầu tiên, hãy tạo một thể hiện lớp 9: 0 Theo mặc định, khóa có trạng thái mở khóa cho đến khi bạn có được nó. Thứ hai, có được khóa bằng cách gọi phương thức 2: 1 Thứ ba, hãy giải phóng khóa sau khi luồng hoàn thành thay đổi biến được chia sẻ: 2 Ví dụ sau đây cho thấy cách sử dụng đối tượng 9 để ngăn chặn điều kiện chủng tộc trong chương trình trước: 3 Output: 4 Làm thế nào nó hoạt động.
Thứ ba, xác định một hàm tăng giá trị của biến 6 theo một số: 5 Thứ tư, tạo hai chủ đề. Chủ đề thứ nhất tăng counter=10 counter=20 The counter is 20 Code language: Python (python)6 lên 10 trong khi luồng thứ hai tăng counter=10 counter=20 The counter is 20 Code language: Python (python)6 lên 20:
Để ngăn chặn các điều kiện chủng tộc, bạn có thể sử dụng lớp 9 từ mô -đun 1. Một khóa có hai trạng thái: khóa và mở khóa. Mục đích của khóa chỉ trong Python là gì?Khóa giúp chúng tôi truy cập hiệu quả một tài nguyên được chia sẻ trong một chương trình để ngăn chặn tham nhũng dữ liệu, nó tuân theo loại trừ lẫn nhau vì chỉ có một luồng có thể truy cập vào một tài nguyên cụ thể tại một thời điểm.help us in efficiently accessing a shared resource in a program in order to prevent corruption of data, it follows mutual exclusion as only one thread can access a particular resource at a time.
Nó có nghĩa là gì đối với một chủ đề bị khóa?Câu lệnh khóa khóa đảm bảo rằng không có luồng nào thực thi.Điều kiện này vẫn có hiệu lực cho đến khi luồng được mở khóa (với luồng mở khóa) hoặc luồng kết thúc.ensures that no other thread executes. This condition remains in effect until the thread is unlocked (with UNLOCK THREAD) or the thread terminates.
Tại sao khóa cần thiết trong một máy chủ ren?Khóa là một tính năng rất quan trọng làm cho đa luồng có thể.Khóa là một kỹ thuật đồng bộ hóa được sử dụng để giới hạn quyền truy cập vào một tài nguyên trong một môi trường có nhiều luồng thực thi.to limit access to a resource in an environment where there are many threads of execution.
Sự khác biệt giữa khóa luồng và khóa một khóa là gì?Khóa chỉ có thể có được một lần và một khi có được, nó không thể được mua lại bằng cùng một luồng hoặc bất kỳ luồng nào khác cho đến khi nó được phát hành.Một luồng.RLOCK có thể được thu thập nhiều lần bởi cùng một luồng, mặc dù một khi được mua bởi một luồng, nó không thể có được bằng một luồng khác cho đến khi nó được phát hành. |