Re: threads大師請進

作者: why8ther (外八喵)   2022-04-06 19:01:32
※ 引述《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 功能 又不會像卡夫卡那樣過度複雜肥大
可以試試看
作者: nh60211as   2022-04-06 19:07:00
大師
作者: SuicideMiko (SuicideMiko)   2022-04-06 19:08:00
有沒有跨thread events這種東西ㄚ一個thread只fire events 一個thread處理 好像沒看過不然就是每次接到log就開thread ?? 感覺很臭 跟星級街肛門一樣味道
作者: argorok (s.green)   2022-04-06 19:14:00
用thread pool阿 不要讓thread在那邊等 有接到在分配
作者: SuicideMiko (SuicideMiko)   2022-04-06 19:15:00
開threads會cost很高嗎
作者: argorok (s.green)   2022-04-06 19:24:00
如果短時間會一直開關thread overhead也是會蠻大的
作者: SuicideMiko (SuicideMiko)   2022-04-06 19:28:00
喔喔 原來可以把thread先block 需要時再來用學到了 我還以為thread pool是一直開關
作者: why8ther (外八喵)   2022-04-06 19:29:00
線程池就是要解決一直開關的問題ㄚ
作者: SuicideMiko (SuicideMiko)   2022-04-06 19:30:00
為好棒我好棒
作者: why8ther (外八喵)   2022-04-06 19:31:00
我愛你
作者: SuicideMiko (SuicideMiko)   2022-04-06 19:32:00
給你們錢
作者: why8ther (外八喵)   2022-04-06 19:33:00
我射精了
作者: argorok (s.green)   2022-04-06 19:59:00
收到錢 讚啦

Links booklink

Contact Us: admin [ a t ] ucptt.com