※ 引述《SuicideMiko (() => { return 1; })》之銘言:
: 我寫了一個logger
: 結構是兩個thread
: main thread是一般程式處理 call logger.info(...) 之類的 然後把log放進queue
: logger thread是一個loop 就一直檢查queue有沒有東西 有就做事這樣
: 但loop這個thread不知道怎麼結束會比較方便
: 我是把logger跟其他工具包成一個assembly
: 所以main會是別的專案
: 我想要在主專案這邊盡量減少設定tools的東西
: 像是開關logger之類的
: 所以不知道有沒有辦法
: 除了在main thread手動terminate logger loop以外
: 讓logger thread自己關閉ㄋ
: 有辦法抓main process的狀態 之類的嗎
: 謝謝 我跟咪口做愛
感覺像是 event driven 的應用情境
每個線程都能接觸到一個中心化的 event bus
然後某個 terminate 的事件會觸發各線程去執行自己的 tear down
看你整個系統怎麼設計的
我上次做這類時間驅動設計用的是 rabbit mq
蠻讚的 還有persistant & replay 功能 又不會像卡夫卡那樣過度複雜肥大
可以試試看
有沒有跨thread events這種東西ㄚ一個thread只fire events 一個thread處理 好像沒看過不然就是每次接到log就開thread ?? 感覺很臭 跟星級街肛門一樣味道
作者:
argorok (s.green)
2022-04-06 19:14:00用thread pool阿 不要讓thread在那邊等 有接到在分配
作者:
argorok (s.green)
2022-04-06 19:24:00如果短時間會一直開關thread overhead也是會蠻大的
喔喔 原來可以把thread先block 需要時再來用學到了 我還以為thread pool是一直開關
作者:
argorok (s.green)
2022-04-06 19:59:00收到錢 讚啦