线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务
线程通过threading模块来实现,分两种调用方式
方式一:直接调用
import threading
import time
def func1(num):
while 1:
print("当前数为{},线程标识符为{}".format(num, threading.get_ident()))
time.sleep(1)
for x in range(3):
threading.Thread(target=func1, args=(x,)).start()
"""
# 输出
当前数为0,线程标识符为20144
当前数为1,线程标识符为16440
当前数为2,线程标识符为11648
当前数为2,线程标识符为11648
当前数为1,线程标识符为16440
当前数为0,线程标识符为20144
"""
方式二:继承式调用
import threading
import time
class MyClass(threading.Thread):
def __init__(self, num):
threading.Thread.__init__(self)
self.num = num
def run(self):
while True:
print("当前数为{},线程标识符为{}".format(self.num, threading.get_ident()))
time.sleep(2)
if __name__ == "__main__":
t1 = MyClass(1)
t2 = MyClass(2)
t1.start()
t2.start()
"""
# 输出
当前数为1,线程标识符为21584
当前数为2,线程标识符为21248
当前数为2,线程标识符为21248
当前数为1,线程标识符为21584
"""