V2EX Gota 的所有回复 第 1 页 / 共 9 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    Gota    全部回复第 1 页 / 共 9 页
回复总数  173
1  2  3  4  5  6  7  8  9  
2023-11-01 16:12:07 +08:00
回复了 dagu111 创建的主题 游戏 怎么看魂类游戏,大家觉得好玩么 ?
吸引力在游戏的 steam 页上就有:“体验学习、克服、获得成就感的连锁效应”。
但类魂游戏目前玩了一些,还没见到哪个能学到魂的精髓的。
2023-10-21 14:57:23 +08:00
回复了 shanhuse 创建的主题 程序员 计算机专业最重要一门课程是哪个?
英语, 数据结构
知行合一很重要, 毕业前至少得以生产环境为目标写出一个完整的项目吧.
不确定你用的是什么数据库。如果是关系型数据库,把用户自定义字段单分一张表存,而不是挤在一个 JSON 里,会不会比较容易查?
2023-10-16 16:07:43 +08:00
回复了 gzk329 创建的主题 数据库 [求助] 多条件查询怎么实现比较好?
2023-10-16 13:53:34 +08:00
回复了 Gota 创建的主题 Go 编程语言 Go 1.21 新加的 log/slog 大家开始用了吗? 写了一个输出到阿里云日志的 writer 扩展, 顺带问个跟 slog 扩展相关的问题.
@paceewang1 见#23 楼和后续的回复,还是有点问题
@paceewang1 #36
@Jrue0011 #37
见 #30 的回复,帖子末尾的写法是不需要锁的
2023-09-29 14:55:09 +08:00
回复了 newshbb 创建的主题 程序员 新项目采用纯 JS 技术栈还是 Go+JS?
@newshbb 现在在外面,微信发我,晚上聊聊看。
@nuk 没有 close ,是换成了一个无缓冲的 channel ,从而确保能 select 到第一个 case 。
2023-09-29 11:32:35 +08:00
回复了 intoext 创建的主题 硬件 有什么好的小主机推荐吗?最好静音版的
Mac mini ,平时工作就用这个
@nuk 直接丢数据肯定不行,正文末尾的写法也不用等其他线程呀。
@soap520 哈哈, 异步相关的东西确实比较烧脑. 1L 重新赋值一个无缓冲 channel 是为了防止 stop 之后有数据进入 chData 却没人来处理, 随着主线程退出这份数据就丢掉了. 至于加锁, 不到万不得已最好别加, 否则每调一次 Log 整个应用都被锁一下, 就有点夸张了.
@soap520 那就剩下 #22 里你自己提到的那个 panic 问题了. 这里的用例是 slog 的 hook, 所以 submit 可能会在任意线程中被调用, 数量和时机都是没办法控制的, 也就是说 submit 里那个过了 if 之后的挂起其实很容易触发.
@realpg 升到 1.21.1 试试呢? 一般我都等大版本之后的一个小版本才开始正式用, 最开始那个版本确实容易出一些小问题.
@soap520 你这里把 close(chData) 放到 for 循环之后执行, 那 for 循环就永远结束不了了.
@qing18 不 close(chData) 就是帖子末尾处的写法.
这里的 submit 接口需要确保: 如果不返回错误的话, 写入的 data 是一定要被处理的.
所以如果不 close 也不换成一个无缓冲 channel 的话, 会出现调用者认为数据成功提交了, 但实际上却没处理的情况.
@pkoukk 因为这是个 Logger, 调用者从各个线程触发写日志的操作. 在主线程调用 stop() 的时候没法确保其他线程都提前停下来不写日志. 如果 writer 返回 ErrClose 的话 slog 是能处理的, 但直接 panic 掉就不行了.
@wentx

因为并发环境下函数执行随时会被挂起. 如果 submit 执行完 if 判断被挂起, 去执行 stop, 等恢复执行 submit 的时候就会 panic

即使正常执行, 如果 submit 执行到 chData <- n 如果因为 buffer 满了开始等待, 此时执行 stop, 会 100% panic.
#13 @wentx 嗯... 并发环境下直接用 bool 值已经很危险了. 而且即使这样写, 程序卡住和 panic 的问题依然会存在.
#14 @pkoukk defer 也不行, 哪怕 stop() 已经完全执行完了. 这时候调 submit() 还是有概率选到第二个 case.
@wentx 没听太明白, 可以具体描述下吗?
@wentx 但 submit() 不一定只有一个线程在调用. 而且如果在 stop 清空存量任务的过程中, 有另一个 submit() 调用, 还是会走到第二个 case 的吧? 可能还有一个问题, 如果没有 submit() 直接调用 stop() 程序就卡住了.
#3 @wentx 只要 select 是无序的, 都有可能选到第二个. https://stackoverflow.com/questions/68650423/do-select-statements-guarantee-order-of-channel-selection

#4 @hsfzxjy 结尾那套写法就没 close, 想看看有没有其他的处理方式.
1  2  3  4  5  6  7  8  9  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2570 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 19ms UTC 02:34 PVG 10:34 LAX 19:34 JFK 22:34
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86