Answer the question
In order to leave comments, you need to log in
Threads in python 2.7?
def kmns(img, k):
# Была функция которая обрабатывала(kmns) изображение,
...
return res
def proc(img, k, n):
# так как изображения были большие,
# пришлось их делить на n равных частей, и передавать их функции обработки
# был малый прирост скорости
...
for i in range(n):
....
img[x:x + dx, y:y + dy] = kmns(img[x:x + dx, y:y + dy], k)
# начал изучать потоки, но появилась проблема
# как получить обработанный кусок изображение
for i in range(n):
....
t = threading.Thread(target=kmns, args=(img[x:x + dx, y:y + dy], k)
# или как связать эти две строки?
img[x:x + dx, y:y + dy] = ... # t.result
Answer the question
In order to leave comments, you need to log in
For example.
import threading, random, time, Queue
q = Queue.Queue()
def sum(a,b,q):
q.put(a+b)
def doSum():
while True:
a = random.uniform(4,5)
b = random.uniform(7,8)
t = threading.Thread(target=sum, args=(a,b,q)).start()
print q.get()
time.sleep(5)
doSum()
You can try using multiprocessing.Pool.
Usage example:
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
p = Pool(5)
print(p.map(f, [1, 2, 3]))
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question