资料内容:
多线程编程
其实创建线程之后,线程并不是始终保持一个状态的,其状态大概如下:
New 创建
Runnable 就绪。等待调度
Running 运行
Blocked 阻塞。阻塞可能在 Wait Locked Sleeping
Dead 消亡
线程有着不同的状态,也有不同的类型。大致可分为:
主线程
子线程
守护线程(后台线程)
前台线程
简单了解完这些之后,我们开始看看具体的代码使用了。
1、线程的创建
Python 提供两个模块进行多线程的操作,分别是 thread 和 threading
前者是比较低级的模块,用于更底层的操作,一般应用级别的开发不常用。
因此,我们使用 threading 来举个例子:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import time
import threading
class MyThread(threading.Thread):
def run(self):
for i in range(5):
print('thread {}, @number: {}'.format(self.name, i))
time.sleep(1)
def main():
print("Start main threading")
# 创建三个线程
threads = [MyThread() for i in range(3)]
# 启动三个线程
for t in threads:
t.start()
print("End Main threading")
if __name__ == '__main__':
main()
运行结果:
Start main threading
thread Thread-1, @number: 0
thread Thread-2, @number: 0
thread Thread-3, @number: 0
End Main threading
thread Thread-2, @number: 1
thread Thread-1, @number: 1
thread Thread-3, @number: 1
thread Thread-1, @number: 2
thread Thread-3, @number: 2
thread Thread-2, @number: 2
thread Thread-2, @number: 3
thread Thread-3, @number: 3
thread Thread-1, @number: 3
thread Thread-3, @number: 4
thread Thread-2, @number: 4
thread Thread-1, @number: 4
注意喔,这里不同的环境输出的结果肯定是不一样的。