Oldukça standart bir Python şişesi api var. Api'nin uç noktası paylaşım programı işlevlerinin birkaçı. Yardımcı fonksiyon paralel olarak çağrılmadı gibi görünüyor ???Python Şişe Çerçevesi - Paylaşılan İşlev Uç Noktalarla Paralel Çalışmıyor
Aşağıdaki kod örneğinde, api'de iki son nokta, foo ve çubuk bulunur. Benim anlayışım, foo ve çubuğun aynı anda çağrılması durumunda, bunları işlemek için iki ayrı thread oluşturulduğudur. Bu yüzden util_func bu iş parçacıkları kapsamında yürütülmelidir.
İki ayrı konu oluşturulduğunu görüyorum. Ancak util_func son çağrı iş parçacığı tarafından engelleniyor gibi görünüyor. Örneğin, bar denirse o zaman foo. foo'daki util_func, foo'daki util_func tamamlanıncaya kadar engellenir. Ardından bardaki util_func tamamlandı.
Bu beklenen davranış ??? Benim kodumdaki tek fark, util_func'ın ayrı bir modül olmasıdır.
def util_func():
# do stuff
@app.route(/foo)
def foo():
util_func()
# do other stuff
@app.route(/bar)
def bar():
util_func()
# do other stuff
bottle.run(app=app,host='localhost', port=8888,server='cherrypy')
Evet, beklenen davranışı daha yardımı olacağını söyledi util_func üzerinde daha detaylı bilgi verilecektir olursa
Onları paralel
çalışan görmelisiniz yazacağım Eğer
'util_func', herhangi bir G/Ç çağrısı yapmadığı varsayılarak. Bir seferde sadece bir Python iş parçacığı çalışır. Https://wiki.python.org/moin/GlobalInterpreterLock sayfasına bakın. –