一 threading模块介绍
multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍
二 开启线程的两种方式
方式一
# 方式一
import time
import random
from threading import Thread
def run(name):
print("%s is running" % name)
time.sleep(random.randrange(1, 5))
print("%s is end" % name)
if __name__ == "__main__":
t1 = Thread(target=run, args=("线程1", ))
t1.start() # 主线程向操作系统发送在进程中再开启一个线程的信号
print("主线程") # 执行角度主线程,资源角度:主进程
方式二
# 方式二
import time
import random
from threading import Thread
class MyThread(Thread):
def __init__(self,name):
super().__init__()
self.name = name
def run(self):
print("%s is running" % self.name)
time.sleep(random.randrange(1, 5))
print("%s is end" % self.name)
if __name__ == "__main__":
t1 = MyThread("线程1")
t1.start()
print("主线程")
三 练习题
1、基于多线程实现并发的套接字通信
2、编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件