廖老师您说虽然Pool的默认数量是CPU核心数(经过实际测试应该是CPU线程数,比如我的i5-3210M双核四线程,测试出Pool的默认参数是4而不是2,也就是说不给Pool传入参数的话,默认第五个程序开始等待),但是问题来了,当你手动给Pool传入参数,比如在我的电脑上传入
p=Pool(8)
最后输出的时候一样可以看出同时运行了8个进程,第九个才开始等待,那这样的话,考虑到我的CPU只有四个线程,这8个子进程究竟是怎么运行的呢
并且和之前我说的一样,这个程序也只有在cmd上运行才看得到子进程运行的结果,直接在IDLE中运行时看不到子进程运行的结果的,不知道是为什么,好奇怪
线程并发数量和cpu核数没关系,最早单核cpu照样能同时跑100线程
Sign in to make a reply
JoyDamn
廖老师您说虽然Pool的默认数量是CPU核心数(经过实际测试应该是CPU线程数,比如我的i5-3210M双核四线程,测试出Pool的默认参数是4而不是2,也就是说不给Pool传入参数的话,默认第五个程序开始等待),但是问题来了,当你手动给Pool传入参数,比如在我的电脑上传入
最后输出的时候一样可以看出同时运行了8个进程,第九个才开始等待,那这样的话,考虑到我的CPU只有四个线程,这8个子进程究竟是怎么运行的呢