1、現在(20180910) 還是有bug存在(有一段時間沒弄它了),還是會 卡死。
隔了這麼一段時間,現在的思路應該不會 侷限在當時的情景裡面了,現在記錄下 排除bug的一些思路,供以後 做工作時使用:
1.1、log記錄 -- 改進:
(1)、使用檔案追加的方式一行一行的儲存log資訊 (使用 tstringlist時,它是整體儲存的,會有tstringlist儲存不了太多資訊的情況)
(2)、可以 將一整塊log資訊 分成 多個小塊,每塊儲存到乙個 檔案中
(3)、刪掉(去除) 指定行數(或者 第n行~第n+m行) 的log資訊
1.2、除錯 定位 思路
(1)、判斷 程式卡主時,是 死鎖 還是 **異常:
①、看有無異常資訊列印出來
②、殺 server/client程序,看留下的 是否活著。程式 卡主時(未殺掉時),也可以看看 server/client兩邊程序 是什麼狀態(活的 / 卡住 /死了)
(2)、懷疑的情況:
①、各個 server/client的標識,有 程序id 改為使用 執行緒id。
∵ qt的qwebview中每乙個網頁 都會有子執行緒,使用 程序id作為 客戶端/服務端的標識的話,可能(肯定會有)造成 資訊被錯誤的執行緒接收的情況--> 發現不是本執行緒的資訊不處理(這個也要做計數)--> 不會再有觸發 setevent的機會,於是程式 卡住,死鎖了...
②、檢查 各種計數:收 / 發 資訊;接收到的資訊 不是發給我的(執行緒標識不對 ; 是我自己發的 ; 不是我發的 但是是同乙個程序的 別的執行緒發的 等等情況);我的請求還未 回覆,對方的請求就來了(對方的請求來的計數);...
(3)2、
3、4、
5、
多程序 多程序queue
多程序 import multiprocessing import threading import time defthread run print threading.get ident defrun name time.sleep 2 print hello name t threading....
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...
python專案 多程序日誌分割
前文說到uwsgi日誌分割,那個是屬於uwsgi專案的執行日誌,我們如果需要列印一些資訊的話,如果全放在裡面由於太多且多執行緒多程序會導致日誌錯亂,所以我決定再增加乙個程式執行日誌模組,然後踩坑開始了。def setup log log name 建立logger物件。傳入logger名字 logg...