码迷,mamicode.com
首页 > 编程语言 > 详细

线程,进程,协程基本理解

时间:2019-11-02 13:46:52      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:创建   计算   编程   部分   换问题   控制   必须   利用   时机   

进程:计算机程序一次执行的实例,由程序数据段PCB组成,是计算机资源分配和调度的基本单位,也是线程的容器。

线程:线程也叫轻量级进程,是程序执行的最小单位,本身只拥有少部分执行必须的资源。

协程:·协程也叫微线程,用户可自己控制协程切换的时机,不再需要陷入系统的内核态。线程和进程都面临着内核态和用户态的切换问题,耗费许多切换时间。

 

区别:

1)线程共享内存空间,进程内存独立

2)线程之间可直接通信,进程间通信必须通过中间代理

3)同一进程的线程之间可以相互控制,但进程只能控制子进程

4)线程创建很简单,但创建新进程必须对父进程进行一次克隆

5)改变主线陈会影响其他线程,但改变父进程不会影响子进程

 

GIL:全局解释器锁,系统中同一时间点,只能有一个线程被解释器解释,无法做到并行,无法充分利用多核资源。

python所谓的多线程就类似于单核CPU情况下的多进程编程。

如何解决GIL锁的问题:

1)更换cpython为jpython

2)使用多进程执行多线程任务

3)通过C来实现多线程

互斥锁:多线程时,保证修改的数据为有序修改,不会产生数据修改混乱。

 

线程,进程,协程基本理解

标签:创建   计算   编程   部分   换问题   控制   必须   利用   时机   

原文地址:https://www.cnblogs.com/zhanghaibin16/p/11781337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!