相关疑难解决方法(0)

我的Python进程在运行什么CPU核心?

设置

我用Python编写了一个相当复杂的软件(在Windows PC上).我的软件基本上启动了两个Python解释器shell.双击main.py文件时,第一个shell启动(我猜).在该shell中,其他线程以下列方式启动:

    # Start TCP_thread
    TCP_thread = threading.Thread(name = 'TCP_loop', target = TCP_loop, args = (TCPsock,))
    TCP_thread.start()

    # Start UDP_thread
    UDP_thread = threading.Thread(name = 'UDP_loop', target = UDP_loop, args = (UDPsock,))
    TCP_thread.start()
Run Code Online (Sandbox Code Playgroud)

Main_thread启动TCP_threadUDP_thread.虽然这些是单独的线程,但它们都在一个单独的Python shell中运行.

Main_thread也启动了一个子进程.这是通过以下方式完成的:

p = subprocess.Popen(['python', mySubprocessPath], shell=True)
Run Code Online (Sandbox Code Playgroud)

从Python文档中,我了解到这个子进程在一个单独的Python解释器会话/ shell中同时运行(!).在Main_thread这个子完全是献给我的GUI.GUI TCP_thread为其所有通信启动a .

我知道事情变得有点复杂.因此,我总结了这个图中的整个设置:

在此输入图像描述


关于这个设置,我有几个问题.我会在这里列出它们:

问题1 [已解决 ]

Python解释器一次只使用一个CPU核心来运行所有线程,这是真的吗?换句话说,Python interpreter session 1(从图中)是否会在一个CPU核心上运行所有3个线程(Main_thread,TCP_threadUDP_thread)? …

python multithreading multiprocessing python-3.x

37
推荐指数
1
解决办法
1万
查看次数