
系统编程
漂亮的宁大宝
这个作者很懒,什么都没留下…
展开
-
多线程竞争、锁、互斥锁、死锁、GIL
多线程竞争 同一个进程里线程是数据共享的,当各个线程访问数据资源时会出现竞争状态,数据几乎同步会被多个线程占用,造成数据混乱。 锁 Python提供的对线程控制的对象。 锁的好处: 确保了某段关键代码只能由一个线程从头到尾完整地执行 锁的坏处: 阻止了多线程并发执行,包含锁的某段代码实际上只能以单线程模式执行,效率就大大地下降了 由于可以存在多个锁,不同的线程持有不同的锁,并试图获取对方持有的锁...原创 2019-05-15 17:31:28 · 784 阅读 · 0 评论 -
进程、线程、协程
进程、线程、协程 进程 一个运行的程序就是一个进程,进程是系统资源分配的最小单位,拥有自己独立的内存空间,多个进程之间的资源是独立不共享的。 线程 线程是调度执行的最小单位,不能独立存在,依赖于进程存在,一个进程内最少存在一个线程,这个线程称之为主线程,一个进程内所有线程是资源共享的。 协程 是一种轻量级的线程,调度完全由用户控制,当某个线程出现耗时操作时,就会调度系统切换另一个线程。 ...原创 2019-05-15 16:06:59 · 155 阅读 · 0 评论 -
并发和并行的理解
并发 任务数多于CPU核数,通过操作系统的各种任务调度算法,实现多个任务"一起"执行。(实际总有一些任务不在执行,因为切换速度相当快,只是看上去一起执行) 例如:线程。 实现并发的库:multiprocessing 并行 任务数少于CPU核数,任务是真正的一起运行。 例如:进程。 实现并行的库:threading ...原创 2019-05-15 16:21:37 · 940 阅读 · 0 评论