请问 threading 能使用多个 cpu 吗?
我写了一个简单的测试:
对于_thread 模块:
#!/usr/bin/python3.4
import _thread as thread,time
def a():
i = 0
while i < 10000000:
time.time()
i += 1
for i in range(0,10):
thread.start_new_thread(a,())
time.sleep(5)
对于 threading:
import threading,time
def a():
i = 0
while i < 10000:
print(time.time())
i += 1
def main(num):
thread_list = []
for i in range(num):
thread = threading.Thread(target=a,args=())
thread_list.append(thread)
for thread in thread_list:
print(thread ,'starting...')
thread.start()
for thread in thread_list:
thread.join()
if __name__ == '__main__':
main(20)
我使用的是 centos6.7 的系统,在使用 top 命令查看时,都在使用 cpu0 和 cpu2 。
但是我知道的是一个进程中的线程同一时刻只能有一个在运行,所以只能使用一个 CPU ,但是我看到结果却不一样,这是我测试的问题吗?
我写了一个简单的测试:
对于_thread 模块:
#!/usr/bin/python3.4
import _thread as thread,time
def a():
i = 0
while i < 10000000:
time.time()
i += 1
for i in range(0,10):
thread.start_new_thread(a,())
time.sleep(5)
对于 threading:
import threading,time
def a():
i = 0
while i < 10000:
print(time.time())
i += 1
def main(num):
thread_list = []
for i in range(num):
thread = threading.Thread(target=a,args=())
thread_list.append(thread)
for thread in thread_list:
print(thread ,'starting...')
thread.start()
for thread in thread_list:
thread.join()
if __name__ == '__main__':
main(20)
我使用的是 centos6.7 的系统,在使用 top 命令查看时,都在使用 cpu0 和 cpu2 。
但是我知道的是一个进程中的线程同一时刻只能有一个在运行,所以只能使用一个 CPU ,但是我看到结果却不一样,这是我测试的问题吗?
