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

  • Migs351

    Migs351

    3 HAZİRAN 2007
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009
  • VideoGamePervert

    VideoGamePer

    30 AĞUSTOS 2008