如何正确实施“工人”

时间:2013-12-29 19:01:53

标签: python multithreading multiprocessing

我创建了一个简单的服务,允许用户将字符串转换为大写字母。

def upper_service(s):
    return s.upper()

现在,假设我只需要最多1000名工作人员来完成我的工作(一次对应1000个并发用户),但我不想立即创建所有1000个工作人员,只需在需要时创建(用户发送请求)服务器)和最大工作人员是1000.如果超过1000个并发用户,其他请求将被添加到'队列'或类似的东西。

那我怎么能用python做到这一点?我的方法足够好还是可以改进?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

import queue, threading, time, random, datetime, webbrowser, urllib.request

def main():
    n = 1000
    startTime = datetime.datetime.now()
    q = queue.Queue()
    threads = []

    for i in range(0,n):
        t = threading.Thread(target=async_shit, args=(q, i))
        t.daemon = False
        threads.append(t)

    [x.start() for x in threads]
    [x.join() for x in threads]
    ....
相关问题