Şu anda bir istemci sunucu uygulamasını bir egzersiz olarak yazma aşamasındayım ve şu ana kadar çalışmam için hemen hemen her şeyi aldım, ancak yapabilemediğim zihinsel bir engel var. başarıyla kendim google.Python Threading Concept Soru
Sunucu uygulamasında, paket işleyicisini ve veritabanı işleyicisini bir yığından çalışmaya başlatan iş parçacığının doğru şey yapması gerektiğini düşünüyorum. Buradaki fikir, bir iş parçacığının paketleri dinlemesini ve veriyi bir yığına eklediğini ve diğer iş parçacığının veriyi yığının altından çıkardığını ve SQL db'ye karşı bazı denetimler yaptıklarını düşünmesidir.
Bu özel durumda, paket işleyicinin çalışmaya devam etmesi daha önemlidir. Sanırım sorum şu ki, bu uygun bir iş parçacığı ve iş parçacığı kilitleme gerektiren sorunlara gidiyorum, örneğin, paket iş parçacığı çalışırken bir sorundan kaçınmak için yığına eklediğinde db işleyicisini kilitlemeliyim yazmak ve okumak için, yığıntaki tek değer, vs.
Herkese teşekkürler!
İşte kodun bir pasajı, devam edeceğinize dikkat edin, bu yüzden yargılama yapmayın, aynı zamanda python'daki ilk denemem (şu anda perl veya php'den daha fazla keyif alıyorum!).
class socketListen(threading.Thread):
def run(self):
while True:
datagram = s.recv('1024')
if not datagram:
break
packetArray = datagram.split(',')
if packetArray[0] = '31337':
listHandle.put(packetArray)
s.close()
class stackOperations(threading.Thread):
def run(self):
while True:
#pull the last item off the stack and run ops on it
#listHandle.getLast is the last item on the queue
def
class listHandle():
def put(shiftData):
if not mainStack:
mainStack = []
mainStack.insert(0,shiftData)
def getLast:
return mainStack.pop()
Hayır, bu mükemmel! Yine de berbat olmalıyım, çok işlemcili değil mi? Ve iş parçacığı ile burada mevcut ayar ile bir kuyruk kullanmak veya farklı bir modüle geçmek demek? – Melignus
Threading, işlemleri aynı anda, genellikle aynı CPU üzerinde yürütmektedir. Çoklu işlem, işi çoklu CPU'lar arasında eşzamanlı olarak dağıtan süreçleri çalıştırıyor. Benzer, ancak farklı. – jathanism
Gotcha, evet, şimdi çok işlemcili modüllerin sayfasını buldum. İyi şeyler ve tamamen anlıyorum. Tercümanların eğer varsa dişleri çekirdeklere geçirdiği bir şey olabileceğini düşünüyordum, ama sanırım bu sadece arzulu bir düşüncedir. Çok işlemcili bir modül mantıklı. Yardım eden çocuklar ve hızlı cevaplar için teşekkürler, harikasın! – Melignus