# coding:utf-8
# 线程的创建与常用方法
# threading 创建线程的模块; Thread(target, args) 创建线程的函数
# thread = threading.Thread(target, args) 对象
# 线程对象的常用方法:
# start() 启动线程;
# join(timeout=None) 阻塞当前线程,主线程要等待当前子线程任务结束后才继续执行 ;timeout 阻塞的超时时间
# getName() 获取线程的名字
# setName(name) 设置线程的名字
# is_alive() 判断线程是否存活
# setDaemon(True) 守护线程
# 单线程初始案例
import time
import random
old_list = ['西游记', '红楼梦', '三国演义', '水浒传', '儒林外传', '隋唐演义', '汉武大帝']
new_list = []
def work():
if len(old_list) == 0:
return 'old_list列表内容已经全部删除'
old_list_data = random.choice(old_list)
old_list.remove(old_list_data)
new_list.append(f'{old_list_data}_new')
time.sleep(1)
if __name__ == '__main__':
start_time = time.time()
for i in range(len(old_list)):
work()
end_time = time.time()
use_time = end_time - start_time
print(new_list)
print(f'用时{use_time} s')
多线程案例:
# coding:utf-8
# 多线程初始案例
import threading
import time
import random
old_list = ['西游记', '红楼梦', '三国演义', '水浒传', '儒林外传', '隋唐演义', '汉武大帝']
new_list = []
def work():
if len(old_list) == 0:
return 'old_list列表内容已经全部删除'
old_list_data = random.choice(old_list)
old_list.remove(old_list_data)
new_list.append(f'{old_list_data}_new')
time.sleep(1)
if __name__ == '__main__':
thread_list = []
start_time = time.time()
for i in range(len(old_list)):
# threading 创建线程的模块; Thread 创建多线程的函数; target 目标函数
thread_obj = threading.Thread(target=work)
thread_list.append(thread_obj)
thread_obj.start()
for j in thread_list:
j.join()
# 也可以不让主线程等待子线程
end_time = time.time()
use_time = end_time - start_time
print(new_list)
print(f'用时{use_time} s')



