python多线程执行同一个函数_Python线程:同时运行两个不同的函数

更新:打开程序正在空闲的Windows上运行其代码。关于I/O,它的行为与shell或Windows命令行不同。他的代码在Windows命令行上运行。

原则上,你的代码对我有效。我正在运行Python2.6.5。

这里有几点意见:

1)在你的情况下,最好只有两个线程:主线程和另一个线程。不过,它也将与三个工作。只是你的主线程只会等待其他线程完成。

2)应该显式地join()生成的所有线程。在终止主线程之前,在主线程中执行此操作。记录生成的线程(例如在列表中),然后在程序结束时加入它们(例如for t in threads: t.join())。

3)在线程之间共享变量self.running。在这种情况下是可以的,因为一个线程只读它,另一个线程只写它。一般来说,您需要非常小心共享变量,并在更改之前获取一个锁。

4)您应该捕获主线程中的KeyboardInterrupt异常,并找到与其他线程通信的方法来终止:)

5)使用小写的方法名,所以不要调用getUserInput,而是调用get_user_input。使用大写类名并从object:class Test(object):继承

这是一个运行示例:import threading

from time import sleep

def main():

t = Test()

t.go()

try:

join_threads(t.threads)

except KeyboardInterrupt:

print "\nKeyboardInterrupt catched."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值