Verbesserung der Parameterübergabe und Berechnung aus Zahlenliste.
This commit is contained in:
@@ -14,38 +14,48 @@ def print_verbose(s):
|
|||||||
if __verbose__:
|
if __verbose__:
|
||||||
print(s)
|
print(s)
|
||||||
|
|
||||||
def calc_square(x, *args,**kwargs):
|
def calc_sum_square(zahlen, *args,**kwargs):
|
||||||
start = kwargs['start']
|
start = kwargs['start']
|
||||||
ende = kwargs['end']
|
ende = kwargs['end']
|
||||||
threadnr = kwargs['threadnr']
|
threadnr = kwargs['threadnr']
|
||||||
summe = 0
|
summe = 0
|
||||||
|
|
||||||
print_verbose(f'args={args}')
|
# print_verbose(f'x={x}')
|
||||||
time.sleep(1.0)
|
# time.sleep(1.0)
|
||||||
print_verbose(f'kwargs={kwargs}')
|
# print_verbose(f'kwargs={kwargs}')
|
||||||
print_verbose(f'von {start} bis {ende}')
|
print_verbose(f'von {start} bis {ende}')
|
||||||
for n in range(start,ende):
|
for n in range(start,ende):
|
||||||
print_verbose(f'Berechnung:{threadnr}: {n}, {n*n}')
|
i = zahlen[n]
|
||||||
summe = summe + n*n
|
print_verbose(f'Berechnung:{threadnr}: {i}, {i*i}')
|
||||||
|
summe = summe + i*i
|
||||||
|
|
||||||
return summe
|
return summe
|
||||||
|
|
||||||
def smap(f, *arg):
|
def smap(f, *arg):
|
||||||
args, kwargs = arg
|
args, kwargs = arg
|
||||||
|
|
||||||
|
# print(f'smap() args= {args}')
|
||||||
|
time.sleep(1.0)
|
||||||
|
# print(f'smap() kwargs={kwargs}')
|
||||||
|
time.sleep(1.0)
|
||||||
return f(list(args), **kwargs)
|
return f(list(args), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
|
||||||
|
start = timer()
|
||||||
zahlen = [i for i in range(10000000)]
|
zahlen = [i for i in range(10000000)]
|
||||||
|
ende = timer()
|
||||||
|
print(f'Zahlenliste erzeugt in {ende-start}s')
|
||||||
|
|
||||||
split = int(len(zahlen) / 3)
|
split = int(len(zahlen) / 3)
|
||||||
print(f'split={split}')
|
print(f'split={split}')
|
||||||
time.sleep(1.0)
|
time.sleep(1.0)
|
||||||
|
|
||||||
start = timer()
|
start = timer()
|
||||||
with Pool(processes=3) as pool:
|
with Pool(processes=3) as pool:
|
||||||
result = pool.starmap(smap, [(calc_square, zahlen, {'threadnr':1,'start':0, 'end':split}), (calc_square, zahlen, {'threadnr':2,'start':split+1,'end':split*2}), (calc_square, zahlen,{'threadnr':3,'start':(split*2)+1,'end':split*3})])
|
result = pool.starmap(smap, [(calc_sum_square, zahlen, {'threadnr':1,'start':0, 'end':split}), (calc_sum_square, zahlen, {'threadnr':2,'start':split+1,'end':split*2}), (calc_sum_square, zahlen,{'threadnr':3,'start':(split*2)+1,'end':split*3})])
|
||||||
print(f'Ergebnis: {result}')
|
print(f'Ergebnis: {result}')
|
||||||
ende = timer()
|
ende = timer()
|
||||||
print(f'Ausführzeit: {ende-start}s')
|
print(f'Ausführzeit: {ende-start}s')
|
||||||
|
Reference in New Issue
Block a user