
多线程
蜀山客e
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解Python多线程同步、互斥锁、死锁
接着上篇多线程继续讲,上篇最后的多线程共享全局变量对变量的处理值出错在本文中给出解决方案。 出现这个情况的原因是在python解释器中GIL全局解释器锁。 GIL:全局解释器锁,每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个线程而已执行代码 线程释放GIL锁的情况:在IO操作等呃能会引起阻塞的system call之前,可以暂时释放GIL 但在执行完毕后,必须重新获取GIL, Python3中使用计时器(执行时间打到阀值后,当前线程释放GIL) python使用多线程是并发 可以使用多线程利用原创 2020-10-14 13:17:42 · 224 阅读 · 0 评论 -
Pyhton多线程
在了解多线程前先给大家介绍下并发和并行: 并发:多个任务一起执行 在多任务之间快速切换处理 任务数量大于cpu核数 并行:一个cpu核处理一个任务,多个cpu核同时处理多个任务 任务数量等于或者小于cpu核数 再介绍下同步和异步 : 同步:指线程在访问某一资源时,获得了资源的返回结果之后才会执行其他操作(先做某件事,再做某件事) 异步: 与同步相对,是指线程在访问某一资源时,无论是否取得返回结果,都进行下一步操作;当有了资源返回结果时 系统自会通知线程 在Python中,使用threading库来创建多线程原创 2020-10-14 13:15:17 · 131 阅读 · 0 评论 -
你懂Python多进程吗?
在Python中如果想创建多进程需要用到multiprrocessing中的Prrocess方法。 在进程之间全局变量是不共享的,如果要对进程的全局变量进行使用的话就需要用到multiprrocessing的Queue方法 首先我们先创建一个多进程 import time from multiprocessing import Process # 进程之间全局变量不共享 def work_1(): for i in range(10): print('任务1')原创 2020-10-13 14:35:02 · 134 阅读 · 0 评论 -
面试时该怎么样回答“什么是线程安全”
面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。 论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。 同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。 目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统保障的。 在每个进程的内存空间中都会有一块特殊的公共区域,通常称为堆(内存)。进程内的所有线程都可以访原创 2020-09-11 21:58:17 · 236 阅读 · 0 评论