如何实现Lua多线程间高效共享数据的最优解决方案?

2026-03-31 22:430阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计4273个文字,预计阅读时间需要18分钟。

如何实现Lua多线程间高效共享数据的最优解决方案?

个人表达能力有限,文字描述不够清晰。我更习惯于自行构思,因此只能尽量保证轮子可直接使用。当然,不太会说话,但有些前置要求还是有必要说明的:直观的讲解。

本人表达能力有限,所以文字描述不太清晰,我更习惯自己默默地造轮子,所以我只能尽力保证我给轮子可以被直接使用。

虽然不太会说,但有一些前提还是必要讲一下的:

直观的讲: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做并发方案的人,都有病,没错,我自己也是。

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来管理。

阅读全文