- 博客(25)
- 收藏
- 关注
转载 Why choose async/await over threads?
A common refrain is that threads can do everything that / can, but simpler. So why would anyone choose /?This is a common question that I’ve seen a lot in the Rust community. Frankly, I completely understand where it’s coming from.Rust is a low-level langu
2024-04-21 11:10:05 5
原创 C#和java(kotlin)的命名规范
好处是一下就能看出哪个是类或者接口,坏处是没发区分成员变量和局部变量,可以加一个下划线或者m作为前缀,以区分局部变量和成员变量。下划线一般表示私有变量。好处是一下子就能看出哪个是局部变量,因为它的规则最特殊,坏处是不容易区分类和成员变量(成员函数),可以给成员变量或者成员函数加一个大写的M。java和kotlin的命名规范一句话:类接口文件名大写驼峰,常量是全大写加下划线,其余全是小写驼峰。C#的命名规范一句话:局部变量是小写驼峰,常量是全大写加下划线,其余全是大写驼峰。
2024-04-11 10:00:40 70 2
原创 理解Kotlin协程的挂起和恢复
")// 模拟异步操作,例如网络请求")suspend 表示这个函数可能会挂起协程。suspendCoroutine 这个函数挂起协程。下面的代码表示后台线程要执行的任务,或者等到同一个线程空闲时执行。// 模拟异步操作,例如网络请求")continuation.resume 这个函数恢复协程WithContext 的内部就是调用了suspendCoroutine挂起当前协程,然后将活儿交给后台线程,后台线程执行完后,调用恢复被挂起的那个协程。
2023-10-20 19:51:26 117
原创 Android多线程异步通信模型-Handler & Looper
一个线程只能有一个MessageQueue,一个Looper,但可以有多个Handler,每一个 Handler 都可以有它自己的消息处理逻辑。消息处理是在Handler指定的Looper对应的线程中处理的。Handler/Looper模型和Actor模型很像,不同的是Handler/Looper模型更多的是关注同一个进程内主线程和工作线程间的简单、有效的消息传递和处理。每个进程使用消息和其他进程进行通信,每个进程有个邮箱可以存储消息,进程通过检查邮箱的消息,然后采取行动,这其实就是现在的Actor模型。
2023-10-12 23:04:32 90
转载 pomelo教程5: pomelo框架的设计动机与架构介绍[谢骋超]
以下是Pomelo官网给出的最初定义:Pomelo是基于node.js的高性能,分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。Pomelo最初的设计初衷是为了游戏服务器, 不过我们在设计、开发完成后发现pomelo是个通用的分布式实时应用开发框架。它的灵活性和可扩展性使pomelo框架有了更广阔的应用范围。由于强大的可能伸缩性和灵活性,pomelo在很多方面甚至超越了现有的开源实时应用框架。如果你浏览一下。
2023-10-10 23:42:30 404 1
转载 pomelo教程4:场景服务分析[谢骋超]
在本篇文章中,我们分析了Pomelo框架中游戏场景的设计和实现,并分析了游戏场景的基本组成。并且为大家介绍了场景服务中最为基础的两个功能,数据持久化和广播消息。并介绍了Pomelo中提供的解决方案和使用方法。
2023-10-10 23:13:30 136 1
转载 Pomelo教程3:基于Pomelo的MMO RPG开发[作者:张小刚 谢骋超]2013-03-26
在本文中,我们介绍了如何使用Pomelo框架来构建了一个包括连接服务器和场景服务器的MMO RPG服务端。并介绍了如何使用pomelo特性,来对游戏服务端进行扩展,并构建出了一个分布式的MMO RPG服务。但是,这只是游戏服务端开发中最为基础的部分,MMO RPG中很多基础功能在这里都没有实现,如数据持久化,AI控制,寻路系统等。在下面的文章中,我们会进一步介绍Pomelo在游戏开发中的应用。
2023-10-10 23:05:33 121 1
转载 pomelo教程2: 深入浅出node.js游戏服务器开发--分布式聊天服务器搭建
聊天可认为是简化的实时游戏,它与游戏服务器有着很多共通之处,如实时性、频道、广播等。由于游戏在场景管理、客户端动画等方面有一定的复杂性,并不适合作为pomelo的入门应用。聊天应用通常是node.js入门接触的第一个应用,因此更适合做入门教程。Pomelo是游戏服务器框架,本质上也是高实时、可扩展、多进程的应用框架。除了在library中有一部分游戏专用的库,其余部分框架完全可用于开发高实时web应用。
2023-10-10 12:46:53 979 1
转载 Pomelo教程1: 基础架构与框架介绍[谢骋超 2013-01-02]
没开发过游戏的人会觉得游戏服务器是很神秘的东西。但事实上它并不比 web 服务器复杂,无非是给客户端提供网络请求服务,本质上它只是基于长连接的 socket 服务器。当然在逻辑复杂性、消息量、实时性方面有更高的要求。游戏服务器是复杂的 socket 服务器。如果说 web 服务器的本质是 http 服务器,那么游戏服务器的本质就是 socket 服务器。它利用 socket 通讯来实现服务器与客户端之间的交互。事实上有不少游戏是直接基于原生 socket 来开发的。后端承载着极复杂的游戏逻辑。
2023-10-10 12:32:41 169 1
转载 Pomelo教程0: Node.js 之网游服务器实践[尧飘海 2012-09-20]
采用 Node.js 来实现网络游戏服务器的开发,除了能利用 JavaScript 的动态语言的优势特性、强大的开源社区和 V8 引擎的优越性能外,在网络数据传输的异步化方面具有快速、实时等事件编程模型;特别在 HTML5 的应用开发中,还具有前后端代码共享、DSL 灵活定义等特点。但是也由于 JavaScript 的动态脚本语言的性质,同时 V8 在内存使用上的限制等问题。
2023-10-10 09:36:47 130 1
原创 Python和C++相互调用
在这个程序中,我们首先定义了一个 C++ 函数 add(),它接受两个整数参数,并返回它们的和。然后,我们在 Python 解释器中定义了一个 Python 函数 PyAdd(),该函数将会调用 C++ 函数 add()。在定义 PyAdd() 函数时,我们使用了 PyArg_ParseTuple() 函数解析了 Python 脚本传递的参数,并将其传递给 C++ 函数 add()。
2023-03-25 21:27:44 1153
原创 依赖倒置,倒置了什么?&控制反转,反转了什么?
我们来看个例子:1. 有个接口叫A,2. B是一个类,实现了A接口,画个UML图,A<-B3. C是一个类,功能依赖B理论上应该直接引用B,但这样有个问题,如果有个同样实现了A接口的D类。C要支持它,就需要改代码。所以,本来我们是依赖具体实现类B的,现在缺依赖A了,倒置体现在这里。 A<-B 本来应该依赖B,而现在直接依赖A,也就是倒置了。(从B变成了A,B是具体实现类,A是抽象类或者接口)
2023-01-22 00:14:34 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人