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