42、Python 多线程与进程:环境、执行与交互

Python 多线程与进程:环境、执行与交互

1. 线程结果轮询策略

在多线程编程中,主线程如何获取工作线程的结果是一个关键问题。一种广泛适用的通用策略是主线程进行轮询,即定期检查结果队列的状态。

在大多数类 Unix 平台上,可以使用 signal 模块的 alarm 函数进行轮询。而 Tkinter GUI 工具包则提供了 after 方法用于轮询。不过,虽然有些工具包和平台提供了更有效的策略,能让工作线程在将结果放入结果队列时通知主线程,但目前并没有通用的跨平台、跨工具包的实现方式。

下面是一个模拟工作线程执行随机表达式计算的示例代码:

import random, time

def makeWork():
    return "%d %s %d" % (random.randrange(2, 10),
                          random.choice(('+', '-', '*', '/', '%', '**')),
                          random.randrange(2, 10))

def slowEvaluate(expressionString):
    time.sleep(random.randrange(1, 5))
    return eval(expressionString)

workRequests = {}

def showResults():
    while 1:
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值