并发: 指的是任务数多于cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)
并行:
当任务数小于或者等于cpu核数时,每一个任务都有对应的cpu来处理执行,即任务真的是一起执行的
六、同步的概念
同步(synchronize)就是协同步调,按预定的先后次序进行运行。如:你说完,我再说
在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的正确性
线程同步提示的几点:
1. 线程同步就是线程排队
2. 共享资源的读写才需要同步
3. 变量才需要同步,常量不需要同步
七、互斥锁(重点)
1. 互斥锁作用
互斥锁解决线程同步的问题
2. 使用互斥锁解决线程安全问题
1. mutex=threading.Lock() # 构建一把互斥锁
2. mutex.acquire() : 上锁
3. mutex.release() : 释放锁
参考:08-多线程共享全局变量问题.py
网友评论