Tôi bắt đầu với nhiều luồng trong python (hoặc ít nhất có thể là tập lệnh của tôi tạo nhiều chuỗi). thuật toán này sẽ được sử dụng đúng đắn của một Mutex? Tôi chưa thử nghiệm mã này và có thể thậm chí sẽ không hoạt động. Tôi chỉ muốn processData chạy trong một thread (một lúc) và vòng lặp chính trong khi tiếp tục chạy, ngay cả khi có một luồng trong hàng đợi.Sử dụng đúng các mutex trong Python
from threading import Thread
from win32event import CreateMutex
mutex = CreateMutex(None, False, "My Crazy Mutex")
while(1)
t = Thread(target=self.processData, args=(some_data,))
t.start()
mutex.lock()
def processData(self, data)
while(1)
if mutex.test() == False:
do some stuff
break
Chỉnh sửa: đọc lại mã của tôi Tôi có thể thấy rằng điều đó là sai. nhưng hey, đó là lý do tại sao tôi ở đây yêu cầu giúp đỡ.
nó là rất khó khăn để tìm ra những gì bạn đang cố gắng làm. Bạn sẽ cần giải thích ý định của mình chi tiết hơn. –
@Marcelo Cantos, xin lỗi bạn có lẽ đúng. Tôi muốn mã của tôi trong processData để bắt đầu trong một bước đi mới. Tôi chỉ muốn một luồng để có thể xử lý dữ liệu tại một thời điểm và theo thứ tự dữ liệu nào được gửi để xử lý dữ liệu. Tôi cũng muốn vòng lặp chính trong khi giữ vòng lặp trong khi các luồng khác nằm trong hàng đợi. – Richard
@Richard: Tại sao bạn muốn sử dụng các chủ đề nếu bạn có kế hoạch serialise tất cả các xử lý nào? Có gì sai với một vòng lặp đơn giản? Ngoài ra, tại sao bạn muốn các chủ đề chính để giữ looping? Nó sẽ chỉ đốt cháy CPU, có thể làm đói các luồng khác. –