Published on2020年8月12日log4cxx OutputDebugString DebugViewWindows文章介绍 log4cxx 的常用 appender 及在 GUI 程序中用 OutputDebugString 看日志。提到可通过配置 log4cxx.properties 实现向 OutputDebugString 输出日志,用 vs 输出窗口或 DebugView 工具实时查看。
Published on2020年7月30日多线程锁key处理cpp主要目的是保证多线程处理同一 key 消息的线程安全和顺序性。通过缓存消息、解析 key、分配线程等步骤实现,关键在于递减索引数和等待索引为 0 以保证顺序执行,代码包含多种类如 MessagePack、NetMessageCache 等,外部调用 init 和 dispatchMessage 函数。
Published on2020年7月29日golang 控制goroutine调度顺序Go文章介绍 golang 控制 goroutine 调度顺序,用 go 启动 goroutine 执行顺序不保证,通过 event 包中的 Event 结构及相关函数可按需求调度。如多个 goroutine 按特定顺序执行及 a、b、c、d 倒序执行的代码示例等。
Published on2020年7月23日快速遍历磁盘Windows介绍快速遍历磁盘方法,不用遍历每个目录,用 DeviceIoControl 函数需管理员权限,还可通过命令行工具“dir c:\*.* /b /s /a-d >>c:\allfile.txt”。给出 C++代码可遍历磁盘文件及目录信息。
Published on2020年7月23日localtime线程不安全造成的线上问题LinuxcppBug线上出现日期赋值异常,经调查确定是 localtime 函数线程不安全导致。通过 demo 模拟,多个线程运行时 t2 的时间会误赋值给 t1。应使用线程安全的 localtime,如在 windows 下直接使用 localtime,linux 下使用 localtime_r。