ProcessPoolExecutor vs ThreadPoolExecutor

 





from concurrent.futures import ProcessPoolExecutor, as_completed
import time

def prime_number1(num_list):
final_pr_list =[]
for num in range(2, num_list+1):
pr_list = []
for i in range(2,num+1):
if num%i == 0:
pr_list.append(num)
if len(pr_list)==1:
final_pr_list.append(num)
else:
pass
return final_pr_list

def prime_number2(num_list):
final_pr_list =[]
for num in range(2, num_list+1):
pr_list = []
for i in range(2,num+1):
if num%i == 0:
pr_list.append(num)
if len(pr_list)==1:
final_pr_list.append(num)
else:
pass
return final_pr_list

def fibonacci_series1(num):
fibo_list =[]
a,b = 0,1
for i in range(num+1):
c = a+b
a = b
b = c
fibo_list.append(c)
return fibo_list


def fibonacci_series2(num):
fibo_list =[]
a,b = 0,1
for i in range(num+1):
c = a+b
a = b
b = c
fibo_list.append(c)
return fibo_list


if __name__ == "__main__":
with ProcessPoolExecutor(max_workers=4) as executor:
stat_time = time.monotonic()

get_result = [executor.submit(prime_number1, 9999),
executor.submit(prime_number2, 9999),
executor.submit(fibonacci_series1, 9999),
executor.submit(fibonacci_series2, 9999)
]
for res in as_completed(get_result):
print(res.result())
end_time = time.monotonic()
print(end_time-stat_time)

###########################################
import time
from concurrent.futures import ThreadPoolExecutor, as_completed



def prime_number1(num_list):
final_pr_list =[]
for num in range(2, num_list+1):
pr_list = []
for i in range(2,num+1):
if num%i == 0:
pr_list.append(num)
if len(pr_list)==1:
final_pr_list.append(num)
else:
pass
return final_pr_list

def prime_number2(num_list):
final_pr_list =[]
for num in range(2, num_list+1):
pr_list = []
for i in range(2,num+1):
if num%i == 0:
pr_list.append(num)
if len(pr_list)==1:
final_pr_list.append(num)
else:
pass
return final_pr_list

def fibonacci_series1(num):
fibo_list =[]
a,b = 0,1
for i in range(num+1):
c = a+b
a = b
b = c
fibo_list.append(c)
return fibo_list


def fibonacci_series2(num):
fibo_list =[]
a,b = 0,1
for i in range(num+1):
c = a+b
a = b
b = c
fibo_list.append(c)
return fibo_list


with ThreadPoolExecutor(max_workers=4) as executor:
stat_time = time.monotonic()

get_result = [executor.submit(prime_number1, 9999),
executor.submit(prime_number2, 9999),
executor.submit(fibonacci_series1, 9999),
executor.submit(fibonacci_series2, 9999)
]
for res in as_completed(get_result):
print(res.result())
end_time = time.monotonic()
print(end_time-stat_time)








Comments

Popular posts from this blog

Multithreading in python

Basic Calc using Python Tkinter