|
发表于 2024-1-23 09:44:07
|
显示全部楼层
要实现两个检测程序同时并行运行,可以使用多线程或者多进程的方式。下面是一个使用多线程的示例代码:
- import threading
- import time
- # 模拟相机拍照的函数
- def take_photo(camera_name):
- print(camera_name + "开始拍照")
- time.sleep(2) # 模拟拍照时间
- print(camera_name + "完成拍照")
- # 模拟检测程序的函数
- def detection(detection_name):
- print(detection_name + "开始检测")
- time.sleep(5) # 模拟检测时间
- print(detection_name + "完成检测")
- # 创建线程对象并启动线程
- if __name__ == '__main__':
- t1 = threading.Thread(target=take_photo, args=("相机1",))
- t2 = threading.Thread(target=take_photo, args=("相机2",))
- t3 = threading.Thread(target=detection, args=("检测程序3",))
- t4 = threading.Thread(target=detection, args=("检测程序4",))
- t1.start()
- t2.start()
- t3.start()
- t4.start()
- t1.join()
- t2.join()
- t3.join()
- t4.join()
- print("所有相机拍照和检测任务已完成")
复制代码
在上述代码中,我们使用了`threading`模块创建了4个线程对象,并分别赋予相机拍照和检测的函数作为目标函数,通过`start()`方法启动线程,使它们同时运行。通过`join()`方法等待线程结束,确保所有任务都完成后再打印出"所有相机拍照和检测任务已完成"的信息。
请注意,在多线程中并不能真正实现多核并行处理,因为Python解释器的GIL(Global Interpreter Lock)限制了同一时刻只能有一个线程执行Python字节码。如果你希望真正实现并行处理,可以考虑使用多进程或者利用其他工具或框架进行并行计算。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|