摘要: 简单解释一下吧 两个生产者producer1,producer2 两个消费者customer 做成守护进程 通过Queue实现线程间数据传递(优点:自带锁,省去加锁释放锁) 通过q.task_done()传递q中的数据减少情况 通过q.join()监控q中是否还有数据 当q中无数据时,线程结束, 主 阅读全文
posted @ 2017-08-30 17:18 风火林山 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 互斥锁,递归锁,信号量 以上都是进程(线程)锁,下面我就一一解释一下 最普通互斥锁 看一下最后执行时间,如果没有互斥锁,线程是并行执行,时间在1s多点,而有互斥锁后,线程变成串行执行,时间是10s多点, 它有什么作用:保证同一时间只有一个进程(线程在修改数据,从而使修改的共享数据安全),也是为什么C 阅读全文
posted @ 2017-08-30 16:01 风火林山 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁需要强调的是:运行完毕并非终止运行#1.对主进程来说,运行完毕指的是主进程代码运行完毕#2.对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕, 主线程才算运行完毕详细解释:#1 主进程在其代码结束后就已经算运 阅读全文
posted @ 2017-08-30 14:57 风火林山 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 在GIL(全局解释器锁)与互斥锁的前提下,程序的运行过程分析针对Cpython所拥有的GIL锁作用:由于Cpython解释器在运行python文件时, Cpython进程与其运行文件所产生的主进程是一个进程(文件进程相当于Cpython的一个线程) 线程的特点是数据资源是共享的,而多个线程又都要共享 阅读全文
posted @ 2017-08-30 14:56 风火林山 阅读(1558) 评论(0) 推荐(0) 编辑