首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.6:在单独的CMD会话中运行相同的多线程Python脚本会绕过Pythons问题吗?

Python3.6:在单独的CMD会话中运行相同的多线程Python脚本会绕过Pythons问题吗?
EN

Stack Overflow用户
提问于 2018-06-10 22:17:10
回答 1查看 64关注 0票数 0

我有一个Python3.6脚本,它是多线程的,运行在windows 10机器上,有12个内核。

我想运行多个脚本实例,但我担心Pythons问题,因为它涉及到每个脚本实例的性能。

我认为当我运行脚本的一个实例时,它内运行的Python进程只运行在一个CPU内核上,并且每个线程都在脚本的“时间片”内调用.

因此,将:

答:在自己的CMD窗口中启动脚本的每个实例,使OS能够自动处理启动每个脚本--父Python进程--并防止发生任何锁定.

B:通过设置与特定核心的关联的快捷方式启动每个CMD会话,然后运行Python脚本,以便python进程及其线程在特定核心上运行CMD进程已被设置为使用.

C:我对线程和Python工作原理的理解是不正确的,我需要理解.

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 23:24:36

我想运行脚本的多个实例

那就去做吧!

我担心Pythons问题在脚本的每个实例的性能方面。

"GIL问题“只是任何一个多线程Python进程中的一个问题:属于同一个Python进程的不超过一个线程将在同一时刻执行Python代码。但是,每个Python进程都有自己的GIL,没有什么可以阻止一个Python进程中的线程与其他Python进程中的线程同时运行。

将(A)在它自己的...run窗口中启动脚本的每个实例,每个Python进程都在它自己的核心上。

不,因为SMP平台(即大多数多处理器系统)上的任何进程都有“自己的核心”是不正常的。内核是操作系统用来运行线程/进程的资源,应用程序通常没有理由知道或关心哪个内核在任何特定时间运行哪个线程/进程。

(B)通过设置与特定核心的亲和力的捷径开始每一次CMD会议。

有些操作系统允许您这样做,但是除非您的应用程序有非常特殊的需求,否则通常不会有任何好处。通常,您应该信任操作系统调度程序尽可能高效地调度进程和线程。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50788535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档