简体   繁体   English

如何正确实施“工人”

[英]How to implement 'workers' correctly

I created a simple service to allow user convert a string to upper case. 我创建了一个简单的服务,以允许用户将字符串转换为大写。

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

Now, suppose I want only maximum 1000 workers to do my job (corresponding 1000 concurrent users at a time), but I don't want to create all 1000 workers immediately, just create when needed (an user sends a request to server) and max workers is 1000. If more than 1000 concurrent users, other requests will be added to a 'queue' or something like that. 现在,假设我只希望最多1000个工作人员完成一次工作(一次对应1000个并发用户),但是我不想立即创建所有1000个工作人员,而仅在需要时创建(用户向服务器发送请求),最大工人数为1000。如果同时存在1000个以上的用户,则其他请求将添加到“队列”或类似的内容中。

So how can I do that with python? 那么如何使用python做到这一点呢? My approach is good enough or can be improved? 我的方法够好还是可以改善?

Try something like this: 尝试这样的事情:

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]
    ....

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM