当我专门使它们工作时,为什么我的线程在睡觉

时间:2019-03-14 03:32:57

标签: python-3.x python-multithreading

我正在学习线程处理我的一个脚本,我有一个问题。我有三个做自己的事情的班级:

class odd(object):
    def count():
        num = 1
        while True:
            num += 2

class even(object):
    def count():
        num = 0
        while True:
            num += 2

class singles(object):
    def count():
        num = 0
        while True:
            num +=1

我的主线程开始了三个线程:

if __name__ == '__main__':

    print('Starting...')
    t1 = Thread(name='thread1', target=even.count)
    t2 = Thread(name='thread2', target=odd.count)
    t3 = Thread(name='thread3', target=singles.count)

    t1.start()
    t2.start()
    t3.start()
    while True:
       pass

但是,当我执行top -H -p <pid>来查看由python进程产生的线程时,我看到总共4个线程,1个正在运行,3个正在睡眠。我期望看到3个总线程和3个正在运行。有人可以向我解释发生了什么吗?第四线程从哪里来?为什么我的所有线程都没有运行?

0 个答案:

没有答案