摘要:
目录 一、守护线程 1.1 详细解释 1.2 守护线程例1 1.3 守护线程例2 一、守护线程 无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。 对主进程来说,运行完毕指的是主进程代码运行完毕 对主线程来说,运行完毕指的是主线程所在的进程内所有非 阅读全文
摘要:
目录 一、python线程模块的选择 二、threading模块 三、通过threading.Thread类创建线程 3.1 创建线程的方式一 3.2 创建线程的方式二 四、多线程与多进程 4.1 pid的比较 4.2 开启效率的较量 4.3 内存数据的共享问题 五、Thread类的其他方法 5.1 阅读全文
摘要:
目录一、GIL全局解释器锁 一、GIL全局解释器锁 Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟 阅读全文
摘要:
目录一、内存中的线程二、用户级线程和内核级线程(了解)2.1 用户级线程2.2 内核级线程2.3 用户级与内核级线程的对比2.3.1 用户级线程和内核级线程的区别2.3.2 内核线程的优缺点2.3.3 用户级线程的优缺点2.4 混合实现2.4.1 linux操作系统的 NPTL 一、内存中的线程 多 阅读全文
摘要:
目录一、使用线程的实际场景 一、使用线程的实际场景 开启一个字处理软件进程,该进程肯定需要办不止一件事情,比如监听键盘输入,处理文字,定时自动将文字保存到硬盘,这三个任务操作的都是同一块数据,因而不能用多进程。只能在一个进程里并发地开启三个线程,如果是单线程,那就只能是,键盘输入时,不能处理文字和自 阅读全文
摘要:
目录一、进程和线程的关系二、线程的特点 一、进程和线程的关系 线程与进程的区别可以归纳为以下4点: 地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。 通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步 阅读全文
摘要:
目录一、线程概念的引入背景1.1 进程1.2 有了进程为什么要有线程1.3 线程的出现 一、线程概念的引入背景 1.1 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令 阅读全文
摘要:
目录 一、进程池 二、概念介绍——multiprocess.Pool 三、参数用法 四、主要方法 五、其他方法(了解) 六、代码实例——multiprocess.Pool 6.1 同步 6.2 异步 七、进程池版socket并发聊天练习 7.1 server 7.2 client 八、回调函数 8. 阅读全文
摘要:
目录一、进程之间的数据共享1.1 Manager模块介绍1.2 Manager例子 一、进程之间的数据共享 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。 这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布 阅读全文
摘要:
目录 一、进程间通信 二、队列 2.1 概念介绍——multiprocess.Queue 2.1.1 方法介绍 2.1.2 其他方法(了解) 三、代码实例——multiprocess.Queue 3.1 单看队列用法 3.2 子进程发送数据给父进程 3.3 批量生产数据放入队列再批量获取结果 四、生 阅读全文