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

  • Hudson Music

    Hudson Music

    13 Mart 2007
  • Make:

    Make:

    23 Mart 2006
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006