立即学习:https://edu.csdn.net/course/play/24458/296437?utm_source=blogtoedu
开启线程的两种方法:threading.Thread
1.方法一:
from threading import Thread
import time
#方式一:直接使用thrending下的Thread类
def mythread(name):
print('我是%s'%name)
time.sleep(0.5)
if __name__ == '__main__':
t1 = Thread(target=mythread,args=('子进程1',))
t1.start()
print('主进程运行结束')
#这里有一个进程两个线程,主进程、主线程、子线程
上面是子线程的创建,下面是子进程的创建,注意区分
#方式一:使用python内置模块multiprocessing下的process类
from multiprocessing import Process
import time
#定义进程函数
def task(name):
print('%s is running!'%name)
time.sleep(3)
print('%s is done!'%name)
if __name__ == '__main__':
#调用process类,并且实例化
# p = Process(target=task,kwargs={'name','子进程1'})
p = Process(target=task,args=('子进程1',))
p.start()
print('主')
2.方法二:
#方式二:创建继承于Thread类的自定义类
from threading import Thread
import time
class mythread(Thread):
def __init__(self,name):#注意:下面两行的代码的顺序不能换,否则会出现错误assert self._initialized, "Thread.__init__() not called"AssertionError: Thread.__init__()not called
super().__init__()
self.name = name
#创建运行函数
def run(self):
print('我是%s'%self.name)
time.sleep(1)
if __name__ == '__main__':
t = mythread('子进程1')
t.start()
print('主进程')
#含有一个主进程,一个主线程和一个子线程