鱼C论坛

 找回密码
 立即注册
查看: 1089|回复: 5

控制方法求助

[复制链接]
发表于 2024-1-23 09:43:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 吴永铎 于 2024-1-23 11:39 编辑

这是一个错误的示范图,不能在减小内存占用的同时最大限度减小运行时间。

其中相机拍照和检测是顺序执行的。每个相机完成拍照后,会启动下一个相机的拍照和当前相机的检测程序。如果任何一个步骤没有完成,它将重新尝试,直到成功为止。

按照此逻辑运行,假定拍照时间20ms一次,检测时间150ms一次。开启相机1的20ms和相机4自己运行的90ms是单线程运行的,浪费了很多时间,希望在最大限度开启两个线程的前提条件下最大限度减小时间的花销。(事实上检测时间和拍照时间都是变化的,只是以此举例)。
控制方式图 (2)(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 17:41:58 | 显示全部楼层

回帖奖励 +50 鱼币

有鱼币!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 17:42:23 From FishC Mobile | 显示全部楼层

回帖奖励 +50 鱼币

让我学习一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 17:43:27 | 显示全部楼层

评分

参与人数 1鱼币 +8 收起 理由
zhangjinxuan + 8 有意思吗

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 19:31:31 | 显示全部楼层

回帖奖励 +50 鱼币

来学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 20:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表