python线程
主线程与子线程

常见方法
t.start()

t.join()
示例1

示例2

示例3
可能会导致数据错误

t.setDaemon(布尔值)

线程名称的设置和获取

自定义线程

锁
线程安全
一个进程中可以有多个线程,且线程共享所有进程中的资源。
多个线程同时去操作一个"东西”,可能会存在数据混乱的情况,例如:
示例一


示例二


如下情况不用加锁

线程锁
在程序中如果想要自己手动加锁,一般有两种:Lock和RLock。
同步锁

递归锁

两者区别


死锁
死锁,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。
死锁示例一

死锁示例二

线程池
Python3中官方才正式提供线程池。
线程不是开的越多越好,开的多了可能会导致系统的性能更低了,例如:如下的代码是不推荐在项目开发中编写。
线程池示例


shutdown()

add_done_callback()

最终统一获取结果

案例-利用线程池下载图片
版本一

版本二



浙公网安备 33010602011771号