python 多线程怎么同时一直运行

 import threading
import time
def a():
    while 1:
        for x in range(3):
            print(x)
            time.sleep(1)
def b():
    while 1:
        for y in range(4,6):
            print(y)
            time.sleep(1)


def c():
    while 1:
        for z in range(7,10):
            print(z)
            time.sleep(1)


aa = threading.Thread(target=a())
bb = threading.Thread(target=b())
cc = threading.Thread(target=c())

aa.start()
bb.start()
cc.start()

我的目的是 这三个线程启动后就一起同时运行。直到我手动关闭。
可是,现在它只是aa在运行,那两个执行。
这是怎么回事?

(如果函数里不加while那它们就依次运行一次就停了。
但我的目的是:三个线程启动后就一起同时运行。直到我手动关闭。)

上面瞎扯什么GIL,这个地方和GIL没关系。
aa = threading.Thread(target=a())
bb = threading.Thread(target=b())
cc = threading.Thread(target=c())
这几行写错了,不应该加括号,否则就变成执行了。
应该这样
aa = threading.Thread(target=a)
bb = threading.Thread(target=b)
cc = threading.Thread(target=c)
完全可以正常并行。

看看是不是CPU一直被线程a占用。python有Gil,一次只能有一个线程执行

由于GIL限制,python没法像c++ java那样执行多线程,只能交替执行。你可以试试协程,或许能达到相应效果。