- 博客(2)
- 资源 (1)
- 收藏
- 关注
原创 AlwaysInterleave与可重入
Orleans中Grain的执行环境是单线程的,默认情况下,每个Grain方法都是串行执行的。即新的消息到来时,必然等待Grain方法内部所有的Async/Await异步操作全部结束后,才能继续执行。如果不想等待,可以打上AlwaysInterleave标记。这样是使得执行更加高效,但是在某些情况下也带来了新的问题。假设在打上AlwaysInterleave标记的Grain方法Method1内部,涉及到针对某个对象id的一系列操作,不妨称之为AsyncAwait1,AsyncAwait2,Async...
2021-04-16 16:25:29
191
原创 Lua表遍历乱序问题
最近在读取CSV文件并通过Lua表遍历时,发现每次重新运行Lua程序后,遍历Lua表的键值顺序都有不同。Lua表的内部是数组+哈希表实现的,读取CSV文件的键值顺序是固定的,插入Lua表以及遍历Lua表键值的顺序也应该是固定的。 经过测试,只有以字符串为键时才会出现上述情况。我查阅了readinglua以及lua的源码,摘录如下: 在Lua表的插入luaH_newkey的实现中,会调用mainposition获取需要插入的目标地址,而对于短字符串LUA_TSHRSTR是调用has...
2021-04-01 09:29:38
1441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人