下面的代码启动一个线程,在我的macbookpro上启动4个内核。 有没有办法限制线程应该使用多少核?在
import threading
import logging
logging.basicConfig(level=logging.DEBUG, format='(%(threadName)s) %(message)s',)
def func():
logging.debug('starting')
m=0
for i in range(500000000):
m+=i
logging.debug('exiting')
thread = threading.Thread(target=func)
thread.start()
logging.debug('completed')
以下是日志:
^{pr2}$
由于您使用的是多线程,它实际上是一个单独的进程。所以问题是如何将这个进程固定到cpu上,即How to set processor affinity on OS X? 虽然症状和你的不一样,但很多事情都在这个question中解释了。在
您可以使用psutil在Python中设置进程CPU关联:
有多线程和多处理。在
可以将进程绑定到cpu核心,但不能将线程绑定到核心。在
进程和线程之间的主要区别在于创建时间、线程生成速度更快并且它们在相同的内存空间中运行,而进程具有独立的内存。在
相关问题 更多 >
编程相关推荐