目录
线程不安全
执行结果不确定,每次执行结果可能都不一样
例如:print函数打印时分两步,第一步打印字符串,第二步打印换行符,在线程执行中,可能会把这两步分开,就造成连续打印两次及以上字符串,再连续打印2次及以上换行符,这就是线程不安全
线程安全
执行一段代码,不会产品不确定的结果,就是线程安全
解决print线程不安全的两种方式
1. print不打印换行
import threading
def woker():
for i in range(20):
print("test thread",end='')
for i in range(1,5):
threading.Thread(target=woker()).start()
2. 使用日志处理模块logging
import logging
import threading
def woker():
for i in range(20):
logging.warning("test thread")
for i in range(1,5):
threading.Thread(target=woker()).start()