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

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011