线程
主线程结束子线程自动结束设置
import threading
import time
def work():
for i in range(10):
print("working...")
time.sleep(0.2)
if __name__ == '__main__':
# # 第一种
# work_thread = threading.Thread(target=work, daemon=True)
# work_thread.start()
# # 第二种
work_thread = threading.Thread(target=work)
work_thread.setDaemon(True)
work_thread.start()
time.sleep(1)
print("ending")
推荐第一种方式
线程的执行顺序:无序
current_thread:获取当前线程信息
# -*- coding:utf-8 -*-
import threading
import time
def son_thread():
time.sleep(0.5)
current_thread = threading.current_thread()
print(current_thread)
if __name__ == '__main__':
for i in range(10):
current_thread = threading.Thread(target=son_thread)
current_thread.start()
执行结果
<Thread(Thread-8 (son_thread), started 13676)><Thread(Thread-5 (son_thread), started 8080)><Thread(Thread-7 (son_thread), started 14636)><Thread(Thread-6 (son_thread), started 14360)>
<Thread(Thread-1 (son_thread), started 8840)>
<Thread(Thread-2 (son_thread), started 14688)>
<Thread(Thread-10 (son_thread), started 3048)>
<Thread(Thread-3 (son_thread), started 14872)>
<Thread(Thread-9 (son_thread), started 10964)>
<Thread(Thread-4 (son_thread), started 13624)>
线程是共享全局数据的
import threading
import time
my_list = []
def write_data():
for i in range(3):
my_list.append(i)
print(my_list)
def read_data():
print(my_list)
if __name__ == '__main__':
write_thread = threading.Thread(target=write_data)
read_thread = threading.Thread(target=read_data)
write_thread.start()
time.sleep(1)
read_thread.start()
执行结果
[0, 1, 2]
[0, 1, 2]
结束打卡,每天进步一点点