如何实现Lua多线程间高效共享数据的最优解决方案?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4273个文字,预计阅读时间需要18分钟。
个人表达能力有限,文字描述不够清晰。我更习惯于自行构思,因此只能尽量保证轮子可直接使用。当然,不太会说话,但有些前置要求还是有必要说明的:直观的讲解。
本人表达能力有限,所以文字描述不太清晰,我更习惯自己默默地造轮子,所以我只能尽力保证我给轮子可以被直接使用。
虽然不太会说,但有一些前提还是必要讲一下的:
直观的讲:lua并不支持多线程,任何尝试用lua做并发方案的人,都有病,没错,我自己也是。
lua有并发需求本身就是一件很鬼扯的事,本身会有这种需求,就说明可能在项目架构的大方向上,存在了问题。
我认为对于C/C++程序员来说,我们看中lua的地方是,它能够用最小的代价与C/C++交互,能够由C/C++去弥补它的不足,
所以,它能够包容所有对它理解程度不一样的C++程序员,
你不会用lua来解决一个问题,没关系,你懂得C/C++的办法,你给lua公开一套接口,说不定解决的还更完美。
虽然从另外一个角度来看,这是一种脱裤子放屁的行为,
但你得知道,维护C++代码的代价,与维护lua代码的代价是不同的,C++乱了,你自己解决起来可能都是大问题,而lua是不怕乱的,除非是写C++的人乱搞。
所以说这么多,我个人有这种需求的理由是:我正在用lua来做并发服务端的业务逻辑,已经跑题太多了,我只简单说一下:
C++实现套接字IO >> 传递json作为文本协议 >> 解析成lua table >> lua执行业务逻辑
在lua执行业务逻辑的过程中,就对共享数据有需求了,例如用户login之后的数据由lua来管理。
本文共计4273个文字,预计阅读时间需要18分钟。
个人表达能力有限,文字描述不够清晰。我更习惯于自行构思,因此只能尽量保证轮子可直接使用。当然,不太会说话,但有些前置要求还是有必要说明的:直观的讲解。
本人表达能力有限,所以文字描述不太清晰,我更习惯自己默默地造轮子,所以我只能尽力保证我给轮子可以被直接使用。
虽然不太会说,但有一些前提还是必要讲一下的:
直观的讲:lua并不支持多线程,任何尝试用lua做并发方案的人,都有病,没错,我自己也是。
lua有并发需求本身就是一件很鬼扯的事,本身会有这种需求,就说明可能在项目架构的大方向上,存在了问题。
我认为对于C/C++程序员来说,我们看中lua的地方是,它能够用最小的代价与C/C++交互,能够由C/C++去弥补它的不足,
所以,它能够包容所有对它理解程度不一样的C++程序员,
你不会用lua来解决一个问题,没关系,你懂得C/C++的办法,你给lua公开一套接口,说不定解决的还更完美。
虽然从另外一个角度来看,这是一种脱裤子放屁的行为,
但你得知道,维护C++代码的代价,与维护lua代码的代价是不同的,C++乱了,你自己解决起来可能都是大问题,而lua是不怕乱的,除非是写C++的人乱搞。
所以说这么多,我个人有这种需求的理由是:我正在用lua来做并发服务端的业务逻辑,已经跑题太多了,我只简单说一下:
C++实现套接字IO >> 传递json作为文本协议 >> 解析成lua table >> lua执行业务逻辑
在lua执行业务逻辑的过程中,就对共享数据有需求了,例如用户login之后的数据由lua来管理。

