跳转至内容

Python 编程/线程

来自维基教科书,开放世界中的开放书籍


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

Python 线程用于在执行任务涉及一些等待时。一个例子是与另一个计算机上托管的服务进行交互,例如 Web 服务器。线程允许 Python 在等待时执行其他代码;这可以通过 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):                                         # Default called function with mythread.start()
        print("{} started!".format(self.getName()))        # "Thread-x started!"
        time.sleep(1)                                      # Pretend to work for a second
        print("{} finished!".format(self.getName()))       # "Thread-x finished!"

def main():
    for x in range(4):                                     # Four times...
        mythread = MyThread(name = "Thread-{}".format(x))  # ...Instantiate a thread and pass a unique ID to it
        mythread.start()                                   # ...Start the thread, run method will be invoked
        time.sleep(.9)                                     # ...Wait 0.9 seconds before starting another

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!
华夏公益教科书