SORU
1 AĞUSTOS 2011, PAZARTESİ


nasıl bir dönüş değeri almak için python ile bir iş parçacığı?

Nasıl değer döndüren erişebilirim 'foo' konu?

def foo(bar):
    print 'hello {0}'.format(bar)
    return 'foo'

from threading import Thread
t = Thread(target=foo, args=('world!',))
t.start()
x = t.join()
print x

Bunu yapmak için tek açık yol, yukarıda, Sadece x None dönüş gibi görünüyor.

CEVAP
12 Ocak 2013, CUMARTESİ


FWIW, multiprocessing Bu modül Pool sınıfı kullanmak için güzel bir arayüzü var. Ve eğer iş parçacığı yerine süreçleri ile devam etmek istersen, sadece bir-damla yerine multiprocessing.pool.ThreadPool sınıfını kullanabilirsiniz.

def foo(bar, baz):
  print 'hello {0}'.format(bar)
  return 'foo'   baz

from multiprocessing.pool import ThreadPool
pool = ThreadPool(processes=1)

async_result = pool.apply_async(foo, ('world', 'foo')) # tuple of args for foo

# do some other stuff in the main process

return_val = async_result.get()  # get the return value from your function.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010