Threading是用于提供线程相关的操作,线程是应用程序中工作的最小单元。线程与进程的关系下图所示: 子线程是由主线程产生的,但两者并没有关联。 利用threading创建线程: 上述创建了两个线程t1和t2,然后控制器就交给了CPU,CPU根据指定算法进行调度,分片执行指令。 更多方法: sta ...
分类:
编程语言 时间:
2019-01-22 19:42:17
阅读次数:
172
进程生命周期,进程生命周期创建、退出、停止,以及僵尸进程是什么意思。 一、进程的定义 进程--线程。进程是资源分配单位;搞清楚进程就是搞清楚进程资源情况。进程控制块PCB是OS的通用叫法。task_struct结构体描述进程的资源情况。如下图所属: 1)*mm描述内存资源 2)*fs:文件系统资源 ...
分类:
系统相关 时间:
2019-01-18 17:22:42
阅读次数:
263
进程: 一些资源的集合。 一个进程里面最少有一个线程,主线程。 线程: 程序执行的最小单位。 电脑CPU有几个核心,就同时只能运行几个任务。 #上下文切换 全局解释器锁,GIL。 锁 多个线程同时去操作同一个数据的时候,可能会导致数据不正确。 要把这个数据机上锁,这样同时就只能有一个线程在操作这个数 ...
分类:
编程语言 时间:
2019-01-15 20:30:33
阅读次数:
180
1.线程理论以及线程的两种创建方法 2.线程之间是数据共享的与join方法 3.多线程和多进程的效率对比 4.数据共享的补充线程开启太快 5.线程锁 互斥锁 同步锁 6.死锁现象和递归锁 7.守护线程和守护进程的对比 8.补充 9.GIL锁&GIL锁与线程锁的区别 10.GIL锁补充 11.信号量 ...
分类:
编程语言 时间:
2019-01-14 23:15:57
阅读次数:
256
一、如何查看线程的id和名字 二、线程池 线程池的回调函数 三、协程 gevent 四、greenlet模块 五、先进后出和优先级队列 ...
分类:
编程语言 时间:
2019-01-14 18:52:17
阅读次数:
203
什么是线程 进程:资源分配单位 线程:cpu执行单位(实体),每一个py文件中就是一个进程,一个进程中至少有一个线程 线程的两种创建方式: 一 二 线程的创建和销毁,相对于进程来说开销特别小 线程之间资源共享,共享的是同一个进程中的资源, 资源共享就涉及到数据安全问题,加锁来解决 线程锁 From ...
分类:
编程语言 时间:
2019-01-14 17:18:18
阅读次数:
143
为什么会出现线程 进程的缺点: 1、非常消耗资源,计算机不能无限开启子进程 2、如果开了过多的进程,cpu的切换进程的模式下是非常耗时的 因为进程的缺点,线程的出现就是为了解决进程的缺点,线程的开销小于进程 1、所以线程就是轻量级的进程 2、一个进程里面至少有一个线程 3、线程就是具体干活的,执行任 ...
分类:
编程语言 时间:
2019-01-13 15:03:01
阅读次数:
235
上一篇文章介绍了:创建县城的两种方式、Event对象判断线程是否启动、利用信号量控制线程并发。 博客链接:线程、进程、协程和GIL(二) 这一篇来说说线程间通信的那些事儿: 一个线程向另一个线程发送数据最安全的方式就是使用queue库中的队列了,通过创建一个供多个线程共享的Queue对象,这些线程使 ...
分类:
编程语言 时间:
2019-01-13 01:56:03
阅读次数:
197
区分进程和线程 进程是cpu资源分配的最小单位(系统会给它分配内存) 不同的进程之间是可以同学的,如管道、FIFO(命名管道)、消息队列 一个进程里有单个或多个线程 浏览器是多进程的,因为系统给它的进程分配了资源(cpu、内存)(打开Chrome会有一个主进程,每打开一个Tab页就有一个独立的进程) ...
分类:
编程语言 时间:
2019-01-12 13:15:38
阅读次数:
215
方式二: 线程之间数据共享的验证: GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。 可以肯定的一点是:保护不同的数据的安全,就应该加不同的锁。 要想了解GIL,首先确定一点:每次执行pyth ...
分类:
编程语言 时间:
2019-01-12 00:24:37
阅读次数:
191