chương trình của tôi được thiết kế theo cách sau:Chạy vòng lặp vô hạn sử dụng đề trong python
- phần đầu tiên của chương trình có giá trị thời gian thực từ một bộ cảm biến và âm mưu sử dụng nó Matplotlib. Việc này phải được thực hiện trong thời gian dài. Và cũng có thể, nó ghi thông tin vào cơ sở dữ liệu.
- Phần thứ hai là IP Camera. Tôi phải lấy đầu vào từ Camera IP và hiển thị nó. Để hiển thị, tôi đang sử dụng phương thức
imshow
của OpenCV. Ngoài ra, tôi đang lưu trữ video từ Camera IP.
Câu hỏi: Tôi có các thuật toán tại chỗ, vấn đề là tôi cần chạy cả hai vòng lặp này trong một thời gian. Điều kiện là tôi không thể thoát khỏi bất kỳ điều gì trong số họ. Bây giờ luồng là một lựa chọn tốt cho điều này nhưng tôi đã đọc về GIL, vậy làm thế nào để tôi đi về việc chạy hai vòng vô hạn?
from multiprocessing import Process
def methodA():
while TRUE:
do something
def methodB():
while TRUE:
do something
p=Process(target=methodA())
p.start()
p1=Process(target=methodB())
p1.start()
Bây giờ khi tôi bắt đầu quá trình p
nó bắt đầu thực hiện, sau đó làm thế nào để bắt đầu p1
để chạy cùng một lúc?
Nếu mối quan tâm duy nhất của bạn đang chạy vòng lặp vô hạn, không có vấn đề thực sự sử dụng đa luồng. – gravetii
Còn GIL thì sao? –
Ngoài ra, một khi tôi bắt đầu thực hiện một chuỗi, làm cách nào để thực hiện chuỗi khác khi luồng đầu tiên đang chạy liên tục/vô hạn? –