自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 C++ 模拟Go语言

C++ 模拟Go语言

2023-12-01 23:14:35 76

原创 理解Kotlin协程的挂起和恢复

")// 模拟异步操作,例如网络请求")suspend 表示这个函数可能会挂起协程。suspendCoroutine 这个函数挂起协程。下面的代码表示后台线程要执行的任务,或者等到同一个线程空闲时执行。// 模拟异步操作,例如网络请求")continuation.resume 这个函数恢复协程WithContext 的内部就是调用了suspendCoroutine挂起当前协程,然后将活儿交给后台线程,后台线程执行完后,调用恢复被挂起的那个协程。

2023-10-20 19:51:26 117

原创 怎么理解kotlin的挂起函数?

中断当前协程,执行挂起函数的函数体,函数体会调用恢复协程的操作。

2023-10-20 01:26:46 84

原创 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

原创 WPF 的MVVM框架使用指南

WPF 的MVVM框架使用指南

2023-05-02 16:59:01 84

原创 Jetpack compose 康奈尔笔记

Jetpack compose学习笔记

2023-04-22 15:05:14 114

原创 费曼学习法的步骤

理解和反思才是最重要的.费曼学习法的核心并不是。

2023-04-11 21:19:23 45

原创 Python和C++相互调用

在这个程序中,我们首先定义了一个 C++ 函数 add(),它接受两个整数参数,并返回它们的和。然后,我们在 Python 解释器中定义了一个 Python 函数 PyAdd(),该函数将会调用 C++ 函数 add()。在定义 PyAdd() 函数时,我们使用了 PyArg_ParseTuple() 函数解析了 Python 脚本传递的参数,并将其传递给 C++ 函数 add()。

2023-03-25 21:27:44 1153

原创 不同的类交互的方式

类交互的方式

2023-03-10 21:35:20 38

原创 进程间通信与线程间通信

进程间通信与线程间通信

2023-01-26 22:24:57 143

原创 init 进程之创建设备文件夹和文件

Android init进程 创建设备文件

2023-01-26 12:49:21 690

原创 依赖倒置,倒置了什么?&控制反转,反转了什么?

我们来看个例子: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

原创 Android tools命名空间 & Android app命名空间

Android xml 命名空间

2023-01-18 22:49:14 253

原创 什么是依赖注入

依赖注入

2023-01-17 00:45:42 274

原创 Kotlin lateinit 和 by lazy有什么区别?

kotlin lateinit与 by lazey的区别

2023-01-04 20:40:01 66

原创 Go 语言入门教程

go语言基础

2023-01-04 20:20:29 259

原创 Kotlin 标准函数

Kotlin 标准函数,let,with,run,apply

2023-01-03 21:53:15 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除