python - python中的多线程?
问题描述
我在python中有这样的代码:
c1=threading.Thread(target=GenQueue.producer(users_c1, 1), daemon=True).start()
c2=threading.Thread(target=GenQueue.producer_(users_c2, 2), daemon=True).start()
有了这个,我想同时开始这两个过程。换句话说,我想同时处理这两个函数,但运行程序我有以下响应:
c1
2.1834390934945658
c1
0.35337611584765205
c1
0.4002003042210114
c1
0.9425023162426116
c2
1.8306126431113086
c2
2.812330137689151
c2
4.292045901607802
c2
5.073242410662336
c2
1.1971281688107942
c2
1.5540286958713654
c2
0.5082889643899778
如您所见,编程首先将所有部分执行到函数c1,完成后开始执行函数到c2。
难道我做错了什么?
谢谢大家
解决方案
如何使用线程的示例:
t = threading.Thread(target=client_loop, args=(client, broker_p, port, token, 600, pub))
如您所见,目标参数是您的函数 (GenQueue.producer),args 是 (users_c1, 1),它们是您的目标函数采用的参数。
所以它应该是这样的:
c1=threading.Thread(target=GenQueue.producer, args = (users_c1, 1), daemon=True)
c1.start()
...
...
推荐阅读
- ruby-on-rails - 在 Rails 中将参数传递给回调
- javascript - React-Router 链接按钮不带路由器?
- wpf - 通过双击标题最大化窗口时,WPF DataGrid MouseLeftButtonUp 被触发
- json - 我在哪里可以获得假的商店 JSON 以便我可以练习获取数据?
- android-gradle-plugin - Gradle 使用 Fabric 插件构建 Crashlytics 和 groovy 插件 DSL
- node.js - 如何从 JSON 格式的查询中获得结果?
- android - 突然“会话'应用程序':启动活动出错”?
- windows - 在 Windows 上使用自动热键模拟 jumpapp
- bash - 如何组合两个字符串并将其用作变量?
- swift - UICollectionView Cell 在选择时不会改变