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

  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007