Python 板


LINE

版上各位前辈好 小弟因工作上需求遇到一个问题,还麻烦版上诸位前辈协助解惑 问题详细说明如下 我有一个def main() 这个main主要是每隔n秒,就产生一组变数(var) 接着这组变数会传入def A, B, C, ...(function有数个) 因为A, B, C,...一个一个处理,会使得所有function还没跑完下,下一笔变数就产生 因此上网爬了一下多线程 threading th1 = threading.Thread(target=A, args=(var,)) th1.start() th2 = threading.Thread(target=B, args=(var,)) th2.start() th3 = threading.Thread(target=C, args=(var,)) ... th3.start() 透过像这样的写法去处理,但这写法又会使得Thread一直不断产生 thread.enumerate() 会看到一堆 所以我想请教是,能否就A B C 各自设为一个Thread 然後当他接受到var时候,就各自自行处理後续动作 基本上需求就像是pyqtSignal那样 我就发射讯号到事先设定连接的function并处理 但因为我这并非UI介面,所以就暂时不考虑pyqtSignal 也有google到python内建的signal 可是看起来并非我所要的需求(或是没看仔细而忽视,若有忽视还请指教) 上网google了multiprocess、async方法 以我对这两方法的认知,似乎派不上用场 (若认知错也请指教) 因为A, B, C.. 并非复杂计算,却需要同时处理 所以暂不考虑上述两方法,而目前只先想到thread 或是版友们知道有甚麽方法可以处理我的需求,还请协助指教 以上,先谢谢花时间阅读我问题的版友 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.129.205.64 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1646039568.A.B75.html
1F:推 lycantrope: 将N个function跟main拆开写成worker 用subprocess去 02/28 17:24
2F:→ lycantrope: 用subprocess.Popen 跑python3 worker.py sys.argv 02/28 17:25
3F:→ jasonhsu14: 谢谢你回答,我研究一下subprocess 02/28 19:26
4F:→ Woqeker: 参数改传 queue 02/28 20:24
5F:→ f496328mm: 试试看用 rabbitmq、celery 的方式 02/28 23:24
6F:→ f496328mm: ABC 是三个 worker,main 是 Producer 02/28 23:25
7F:→ mantour: 把每次产生的var分别append 到queneA, queneB, queneC 03/01 21:40
8F:→ mantour: thread A, B, C分别跑一个loop 03/01 21:41
9F:→ mantour: while 1: if queueA.empty(): time.sleep(1) else: var= 03/01 21:46
10F:→ mantour: queueA.get() ...... 03/01 21:46
谢谢楼上几位回答,小弟最後是用mantour跟Woqeker提供的方式去处理 1F大大提供的subprocess方法,我有先试过,但我一开始没讲清楚 我的需求可能会有function A需要前一笔或前N笔参数所得到的结果再计算 尚不确定subprocess有无办法完成需求,所以先暂时用queue的方式处理 f大的rabbitmq,google一下感觉是比较进阶版的queue方式,需要些时间消化 目前先以完成需求的前提下,我是先采用queue的方式 後续会再想想这部分可以如何提高执行效率 以上再次谢谢楼上几位的协助 ※ 编辑: jasonhsu14 (220.129.194.166 台湾), 03/06/2022 14:15:07







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP