チャット プログラムを作成し、Tkinter を使用して GUI を実行し、新しいメッセージが到着したときに確認するために、新しいスレッドを作成して、新しいスレッドが必要なものを取得して更新している間、Tkinter がロックすることなく処理を続けられるようにします。 Tkinter ウィンドウ。ただし、これは巨大な CPU ホグになります。私の推測では、スレッドが開始され、機能が完了したときに実際に解放されないという事実に何らかの関係があると思います。
関連するコードは次のとおりです(現時点では醜く、最適化されていませんが、ジョブを完了し、それ自体は処理能力をあまり使用しません。スレッド化せずに実行すると、CPUをあまり消費しませんがロックしますアップTkinter)
def interim(self):
threading.Thread(target=self.readLog).start()
self.after(5000,self.interim)
def readLog(self):
print 'reading'
try:
length = len(str(self.readNumber))
f = open('chatlog'+str(myport),'r')
temp = f.readline().replace('\n','')
while (temp[:length] != str(self.readNumber)) or temp[0] == '<':
temp = f.readline().replace('\n','')
while temp:
if temp[0] != '<':
self.updateChat(temp[length:])
self.readNumber +=1
else:
self.updateChat(temp)
temp = f.readline().replace('\n','')
f.close()
except: pass
CPU の 100% をすぐに消費しないように、スレッドをより適切に管理する方法はありますか?