skynet
文章平均质量分 76
fananchong2
这个作者很懒,什么都没留下…
展开
-
skynet - 多线程 Actor 模型
Actor 模型中, Actor 间通过消息交互。因此 skynet 的 module service 均有自己的消息队列。thread_monitor 每 5 秒检查 1 次,如果版本号不变,打印日志警告,有线程可能死锁了。工作线程,要执行 Actor 消息,首先从全局消息队列摘取 Actor 的消息队列。为了能让 Actor 高性能并发执行, skynet 中设置了全局消息队列。工作线程执行的都是 Actor 消息处理。skynet 给工作线程设置了优先级。工作线程在没消息后,会 sleep。原创 2024-05-19 23:16:58 · 786 阅读 · 0 评论 -
skynet - spinlock 简单的自旋锁
atomic_load_relaxed_ 函数内用的是 memory_order_relaxed。memory_order_relaxed 即普通内存访问。memory_order_acquire/memory_order_release 比较好理解,请自行度娘。因此 atomic_load_relaxed_ 性能效果等价于普通内存访问(即性能最高),while 空循环的一种性能优化,度娘了解知道就好。原创 2024-05-12 21:30:49 · 325 阅读 · 0 评论