All Posts

  • Published on
    主要目的是保证多线程处理同一 key 消息的线程安全和顺序性。通过缓存消息、解析 key、分配线程等步骤实现,关键在于递减索引数和等待索引为 0 以保证顺序执行,代码包含多种类如 MessagePack、NetMessageCache 等,外部调用 init 和 dispatchMessage 函数。
  • Published on
    文章介绍 golang 控制 goroutine 调度顺序,用 go 启动 goroutine 执行顺序不保证,通过 event 包中的 Event 结构及相关函数可按需求调度。如多个 goroutine 按特定顺序执行及 a、b、c、d 倒序执行的代码示例等。
  • Published on
    介绍快速遍历磁盘方法,不用遍历每个目录,用 DeviceIoControl 函数需管理员权限,还可通过命令行工具“dir c:\*.* /b /s /a-d >>c:\allfile.txt”。给出 C++代码可遍历磁盘文件及目录信息。
  • Published on
    线上出现日期赋值异常,经调查确定是 localtime 函数线程不安全导致。通过 demo 模拟,多个线程运行时 t2 的时间会误赋值给 t1。应使用线程安全的 localtime,如在 windows 下直接使用 localtime,linux 下使用 localtime_r。
  • Published on
    总结:纠错前先思考,若直接扎进问题,仅解决当前代码,先思考错误及引入方式,能发现并纠正高层次问题,改进系统设计,防止更多 bug 出现。