python什么是主进程 python中一个变量是如何穿梭于多线程与多进程的?
python中一个变量是如何穿梭于多线程与多进程的?
多线程共享全局变量,多个进程不能共享全局变量,因为每个进程都有独立的内存地址。在中间人的帮助下,这个中间人一般是消息队列或者python内置的多进程通信队列。
python异步协程跟多进程、多线程哪个效率高?
Python多线程效率不高,因为有GIL锁,执行不能并发。
一个被排除,留下异步比较多进程。哪一个是高效的,主要取决于它是否是一个计算密集型任务,以及进程之间的通信有多频繁。
请记住,单个进程是异步的,只有一个内核在满负荷工作,多个进程可以利用多个内核的功能。
最后,多进程和异步可以混合,这种结构有点类似于Go,可能是最高效的组合。
为什么python的GIL问题一直让人诟病,python社区却不解决?
GIL,这把大锁的存在是有原因的。首先,我们知道python是一种解释语言,代码执行是在解释器中进行的。解释性语言有一个共同的问题。;无法实现真正的多线程并发。这是先天性的。多个线程共享主进程的资源。如果你不 t锁死线程,让它们并发,多线程修改共享数据,会导致数据混乱,不靠谱。因为翻译者不。;我不知道你在代码的什么地方修改了共享数据,它直接锁定了线程。解释器一次只允许一个线程运行。
当然,你可能会说,我 我只是要求解释器锁定要修改的共享数据,这样多线程才能真正并行。其实国外老板早就这么干了。测试的结果是,执行效率不如直接锁线程。到目前为止,python开发团队还没有针对这个问题提出更好的解决方案。这是解释性语言中的一个常见问题。另外,解决这个问题在技术上也有难度。
虽然GIL这个大锁的存在影响了多线程,不能真正并发,但是我们可以用多个进程来解决。
上次在Stack Overflow上看到有人讨论,简短的回答是太难改了...因为要考虑的问题太多了。
。
至于要考虑的问题,我不知道。;我不太了解这些技术,我想你也不知道。;t也没有,所以我不会 不要列举它们。
首先,python 的性能和其他语言相比真的不高。
第二,如果你在python中使用了线程,我想你应该对这个地方为什么使用线程有非常深刻的理解。
第三,流程的效率也不错。可以满足日常用胶需求。
全球锁是一个历史问题。无论如何,魔变中的社群会有一定程度的提升。在这个阶段,它足够作为胶水和快速业务代码。当你需要考虑更高的性能时,可以考虑换一个。重写业务代码也很快。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。