sunny-cheng  

2018年11月18日

摘要: 一 死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 执行效果 二 递归锁 解决方法,递归锁,在Python中为了支持 阅读全文
posted @ 2018-11-18 21:22 sunny-cheng 阅读(231) 评论(0) 推荐(0) 编辑
 
摘要: 一 引子 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。>有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样 阅读全文
posted @ 2018-11-18 20:58 sunny-cheng 阅读(164) 评论(0) 推荐(0) 编辑
 
摘要: from threading import Thread,Lockimport timen=100def task(): global n temp=n time.sleep(0.1) n=temp-1if __name__ == '__main__': t_l=[] for i in range( 阅读全文
posted @ 2018-11-18 16:12 sunny-cheng 阅读(249) 评论(0) 推荐(0) 编辑
 
摘要: Thread对象的其他属性或方法 介绍 验证 执行结果 主线程等待子线程结束 执行结果 阅读全文
posted @ 2018-11-18 12:27 sunny-cheng 阅读(138) 评论(0) 推荐(0) 编辑
 
摘要: #1 进程的开销大于线程# from threading import Thread# import time## def task(name):# print('%s is running'%name)# time.sleep(3)# print('%s is done'%name)## if _ 阅读全文
posted @ 2018-11-18 12:01 sunny-cheng 阅读(150) 评论(0) 推荐(0) 编辑
 
摘要: 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 方式一 方式二 阅读全文
posted @ 2018-11-18 11:35 sunny-cheng 阅读(150) 评论(0) 推荐(0) 编辑
 
摘要: 一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于cpu),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一条流水线。 阅读全文
posted @ 2018-11-18 11:04 sunny-cheng 阅读(140) 评论(0) 推荐(0) 编辑
 
摘要: 一 生产者消费者模型介绍 为什么要使用生产者消费者模型 生产者指的是生产数据的任务,消费者指的是处理数据的任务,在并发编程中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了 阅读全文
posted @ 2018-11-18 10:23 sunny-cheng 阅读(162) 评论(0) 推荐(0) 编辑