Python线程与并发

2024-09-29 23:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试学习python中的线程时编写了以下代码。在

    import threading
    import time

    def printWorker(x,y):
        t = time.time()
        while time.time() - t < 10:
            print "Name:%s  Time:%s" %(y,str(time.time() - t))
            time.sleep(x)

    t1 = threading.Thread(target = printWorker(2,'Thread-1'))
    t2 = threading.Thread(target = printWorker(3,'Thread-2'))

    t1.start()
    t2.start()

我试图得到一个同时启动线程1和线程2的输出。 IE打印

线程1的东西, 线程2的东西, 线程1的东西, 线程2的东西, 而不是

线程1的东西, 线程1的东西, 线程1的东西, 线程1的东西, 线程2的东西, 线程2的东西, 线程2的东西, 线程2材料

相反,Thread-2只在Thread-1之后开始。我查过网上的例子,但我不明白我机械地做错了什么。在


Tags: 代码nameimporttargettimedef线程thread
1条回答
网友
1楼 · 发布于 2024-09-29 23:22:36

要传递参数,需要执行以下操作:

t1 = threading.Thread(target=printWorker, args=(2, 'Thread-1'))
t2 = threading.Thread(target=printWorker, args=(3, 'Thread-2'))

您的代码在主线程上调用printWorker并启动两个线程,target=None(printWorker的返回值)。在

相关问题 更多 >

    热门问题