摘要:
[TOC] 一、什么是进程池或线程池 池: 池的是为了限制进程数和线程数 什么是时候该用进程池/线程池: 当python程序是 计算密集型 且并发的任务量远大于计算机所能承受的范围, 无法一次性开启过多的任务数量就应该考虑使用进程池和线程池 二、理解同步、异步、 同步: 提交了一个任务,必须等任务执 阅读全文
摘要:
[TOC] 一、线程定时器 线程定时器也是定时器,就是定时之后开启一条线程 二、用法 阅读全文
摘要:
[TOC] 一、GIL全局解释器锁 Python代码的执行由Python虚拟机(也叫解释器主循环)来控制 。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。 虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机的访问由全 阅读全文
摘要:
[TOC] 一、队列 queue队列:使用 ,用法与进程Queue一样 实际上这里就是Python解释器中的一种数据结构中的类型——队列 这里直接使用队列也可以。 如果还要类似计数器的功能可以加上task_done和join 1. FIFO 先进先出 2. LIFO 后进先出 3. 优先级队列 二、 阅读全文
摘要:
[TOC] 一、守护线程 无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。 1. 对主进程来说,运行完毕指的是主进程代码运行完毕 2. 对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 1.1 详细解释 阅读全文
摘要:
[TOC] 一、锁 线程中的锁机制和进程中一样。都是通过锁来控制资源访问虽然,线程中的资源是共享的,但也可以通过锁来进行控制。达到线程同步的目的。虽然牺牲了效率但是保证了安全。 二、解决死锁问题 递归锁 死锁问题: 死锁就是A等B,B等A,互相都在等锁的开启。因此会造成阻塞。 2.1 递归锁 递归锁 阅读全文
摘要:
[TOC] 一、线程概念的引入背景 1.1 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 阅读全文
摘要:
[TOC] 一、python线程模块的选择 Python提供了几个用于多线程编程的模块, 包括thread、threading和Queue等 。thread和threading模块允许程序员创建和管理线程。thread模块提供了基本的线程和锁的支持,threading提供了更高级别、功能更强的线程管 阅读全文