from threading import Thread
import time
deftask(n, name):print('{} is running'.format(name))
time.sleep(n)print('{} is done'.format(name))if __name__ =='__main__':
obj1 = Thread(target=task, args=(3,'线程1'))
obj2 = Thread(target=task, args=(5,'线程2'))
obj1.start()
obj2.start()
obj1.join()# 等待子线程obj1执行完成
obj2.join()# 等待子线程obj2执行完成print('主')
2.2.2、方式二
from threading import Thread
import time
classMytask(Thread):def__init__(self, n, name):super().__init__()
self.n = n
self.name = name
defrun(self)->None:print('{} is running'.format(self.name))
time.sleep(self.n)print('{} is done'.format(self.name))if __name__ =='__main__':
obj1 = Mytask(3,'线程1')
obj2 = Mytask(5,'线程2')
obj1.start()
obj2.start()
obj1.join()
obj2.join()print('主')
2.3、同一个进程下的多个线程数据共享
from threading import Thread
money =10deftask(n):global money
money = n
if __name__ =='__main__':
t = Thread(target=task, args=(66,))
t.start()
t1 = Thread(target=task, args=(88,))
t1.start()
t.join()
t1.join()print('主线程里的money: {}'.format(money))# 88