V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  namonai  ›  全部回复第 2 页 / 共 2 页
回复总数  25
1  2  
搜一下《 Engineering a compiler 》
@bthulu 你可以试试 trible buffer ,编号 0 、1 、2 ,读线程实现一个 getIndex(),初始的 valid index 是 0 ,需要对数据更改的时候,index + 1 ,往 1 上写,写完了以后 valide index 也更新到 1 ,这个时候 0 和 1 的数据都是有效的,过了一小段时间,0 就没人访问了。在这段时间里如果又有需要写入的数据,那就往 2 上写。这样子可以始终保证读到的数据是完整的。可以把写入操作放在一个单独的线程里进行,其他线程如果有修改数据的需要,就通过队列传递数据过去。
@svnware 不一样的。比如一段数据,写入一半的时候被读取,读到的就是 broken 的数据。哪怕是对单个字节进行读写操作,也可能存在问题,所以至少要使用原子操作进行保护。
113 天前
回复了 blankmiss 创建的主题 Linux tigervnc 带宽占用好大啊
试试 xrdp
113 天前
回复了 omri 创建的主题 Android 终于轮到我了,求推荐一款安卓手机
我打算买个 pixel 7pro ,京东四千多。只是不知道 5G 能不能用
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5556 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 06:27 · PVG 14:27 · LAX 23:27 · JFK 02:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.