Python中的线程用于同时运行多个线程(任务、函数调用)。需要注意的是,这并不意味着它们会在不同的CPU上执行。如果程序已经使用了100%的CPU时间,Python线程不会使程序变得更快。在这种情况下,您可能需要研究并行编程。如果您对Python中的并行编程感兴趣,请参考此处。

Python线程用于执行需要等待的任务。例如,交互式服务(如Web服务器)通常需要等待响应。线程允许Python在等待期间执行其他代码;这可以通过time.sleep函数轻松模拟。

示例

最小示例:使用函数调用

创建一个线程,打印从1到10的数字,并且每次打印之间等待一秒钟:

import threading
import time

def loop1_10():
    for i in range(1, 11):
        time.sleep(1)
        print(i)

threading.Thread(target=loop1_10).start()

最小示例:使用对象

#!/usr/bin/env python

import threading
import time

class MyThread(threading.Thread):
    def run(self):  # 默认调用的函数,通过 mythread.start() 调用
        print("{} started!".format(self.getName()))  # 输出 "Thread-x started!"
        time.sleep(1)  # 模拟工作一秒
        print("{} finished!".format(self.getName()))  # 输出 "Thread-x finished!"

def main():
    for x in range(4):  # 四次...
        mythread = MyThread(name="Thread-{}".format(x))  # 实例化一个线程,并传入唯一ID
        mythread.start()  # 启动线程,run方法会被调用
        time.sleep(0.9)  # 每启动一个线程,等待0.9秒

if __name__ == '__main__':
    main()

输出结果如下:

Thread-0 started!
Thread-1 started!
Thread-0 finished!
Thread-2 started!
Thread-1 finished!
Thread-3 started!
Thread-2 finished!
Thread-3 finished!
Last modified: Friday, 31 January 2025, 1:25 AM