#jupyter Notebook
import multiprocessing as mp
pool = mp.Pool(processes =4)
p1 = int(1e8 + 7)
#Determine whether it is a prime number
def is_prime(I):
if I%2 ==0:#################
return False
for i in range(3, int(I**0.5) + 1, 2): ###############
if I%i ==0:##########
return False##########
return True#######
%time pool.map(is_prime, 10*[p1])
mac 或者 Linux 或许可以运行得到如下结果

我在windows版本下一直运行就是没有结果
之后在 Spyder中因为运行不了所以更改了代码
import multiprocessing as mp
p1 = int(1e8 + 7)
#Determine whether it is a prime number
def is_prime(I):
if I%2 ==0:#################
return False
for i in range(3, int(I**0.5) + 1, 2): ###############
if I%i ==0:##########
return False##########
return True#######
if __name__ == '__main__':
pool = mp.Pool(processes =4)
print(pool.map(is_prime, 10*[p1]) )

2. #Jupyter in MAC OS or Linux OS
import numba
import multiprocessing as mp
p2 = 100109100129162907
pool = mp.Pool(processes =4)
#Determine whether it is a prime number
def is_prime(I):
if I%2 ==0:#################
return False
for i in range(3, int(I**0.5) + 1, 2): ###############
if I%i ==0:##########
return False##########
return True#######
#pool.map(is_prime_nb, 10 * [p2])
is_prime_nb = numba.jit(is_prime)
show:

#Spyder in windows 7
import numba
import multiprocessing as mp
p2 = 100109100129162907
#Determine whether it is a prime number
def is_prime(I):
if I%2 ==0:#################
return False
for i in range(3, int(I**0.5) + 1, 2): ###############
if I%i ==0:##########
return False##########
return True#######
#pool.map(is_prime_nb, 10 * [p2])
is_prime_nb = numba.jit(is_prime)
if __name__ == '__main__':
pool = mp.Pool(processes =4)
print(pool.map(is_prime_nb, 10 * [p2]) )

博客主要围绕Python多进程进行质数判断展开。展示了在Jupyter Notebook、不同操作系统(Mac、Linux、Windows)及不同开发环境(Spyder)下的代码实现,还引入了numba库进行优化,解决了部分环境下代码运行的问题。
3548

被折叠的 条评论
为什么被折叠?



