擅长:python、mysql、java
<p>有多线程和多处理。在</p>
<p>可以将进程绑定到cpu核心,但不能将线程绑定到核心。在</p>
<p>进程和线程之间的主要区别在于创建时间、线程生成速度更快并且它们在相同的内存空间中运行,而进程具有独立的内存。在</p>
<pre><code>import multiprocessing as mp
import psutil
def spawn():
procs = list()
n_cpus = psutil.cpu_count()
for cpu in xrange(n_cpus):
affinity = [cpu]
d['affinity'] = affinity
p = mp.Process(target=run_child, kwargs=d)
p.start()
procs.append(p)
for p in procs:
p.join()
print('joined')
def run_child(affinity):
proc = psutil.Process() # get self pid
print('PID: {pid}'.format(pid=proc.pid))
aff = proc.cpu_affinity()
print('Affinity before: {aff}'.format(aff=aff))
proc.cpu_affinity(affinity)
aff = proc.cpu_affinity()
print('Affinity after: {aff}'.format(aff=aff))
if __init__ == '__main__':
spawn()
</code></pre>