- 博客(35)
- 收藏
- 关注
原创 libgo框架介绍
官方地址使用libgo编写并行程序,即可以像golang、erlang这些并发语言一样开发迅速且逻辑简洁,又有C++原生的性能优势,鱼和熊掌从此可以兼得。TODO:libgo 后续会逐步完善或增加的功能;libgo:源码实现的主目录,关于协程和调度策略的实现都在该目录下;test:测试代码;tutorial:libgo 使用教程代码;vs_proj:VS 环境下如何使用libgo。libgo目录下:task:协程的相关实现;scheduler:协程调度的实现;
2024-08-14 00:36:47
558
原创 分布式文件系统FastDFS入门
分布式文件系统是把数据存储在很多的主机节点上上,通过程序来形成一个完整的文件系统。分布式文件需要网络来数据传输,通过云服务上的管理程序来进行存储数据节点的获取和存储以及用户的访问和上传。布式文件系统有GFS、HDFS、Lustre、FastDFS、GlusterFS、GPFS、Ceph、淘宝TFS和腾讯TFS等,本文将对FastDFS进行介绍。
2024-08-13 22:26:39
938
原创 鸿蒙开发基础-组件基础
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。● AktTS提供原有前端范畴内的一切TypeScript和JavaScript的类型及方法支持● 不是所有都支持- 比如解构不支持(Next版本)● ArkTS采用声明式UI的方法来绘制页面,设置属性,绑定事件struct用来描述UI,包含UI的所有信息,注意不能有继承关系或重名@Component。
2024-08-11 18:38:08
599
原创 Windows下的多线程
CreateThread 是一种微软在 Windows API 中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程。线程终止运行后,线程对象仍然在系统中,必须通过CloseHandle 函数来关闭该线程对象。常见的内核对象 : 进程、线程、文件,存取符号对象、事件对象、文件对象、作业对象、互斥对象、管道对象、等待计时器对象,邮件槽对象,信号对象。调用创建内核对象的函数后,该函数会返回一个句柄,它标识了所创建的对象。标识系统中的哪个线程当前拥有互斥对象,计数器用于指明该线程拥有互斥对象的。
2024-08-11 18:35:14
837
原创 Windows内核对象,句柄,信号量和关键代码段
这时,进程退出只会减少当前进程对引用的所有内核对象的使用计数,而不会减少其他进程对内核对象的使用计数(即使该内核对象由当前进程创建)。内核对象 A,B 的引用计数减为 0,被操作系统内核销毁,而进程 1只减少自身对 C,D 的引用计数,不会影响进程 2 对 C,D 的引用计数,此时 C,D 引用计数不为 0,不会被销毁。就是相当于操作系统多了一个内存块,这个内存块就是内核对象也是此时内核对象被创建,其数据结构中的引用计数初始为 1(这样理解:只要内核对象被创建,其引用计数被初始化为 1)
2024-08-11 18:30:52
682
原创 c++——atomic以及内存顺序详解
原子性操作库(atomic)是C++11中新增的标准库,它提供了一种线程安全的方式来访问和修改共享变量,避免了数据竞争的问题,对值进行在多线程的行为明确定义,使得不同的线程访问这个包含的值不会导致数据竞争,但是只支持基本数据类型,包括boolcharshortintlonglong long等基本数据类型,以及intmax_tuintmax_tintptr_t等扩展类型,对于用户自定义类型,需要使用 std::atomic。
2024-08-11 18:05:58
415
原创 Windows下的TCP和UDP网络编程
可以读写内核没有处理的ip数据报,可以直接传输给需要的应用程序。最大监听数目,执行到listen,未执行到accept。sockaddr_in是面向程序员的使用的。该部可以接受连接放到队列,但是不会处理数据。sockaddr是面向操作系统的使用的。10061–计算机拒绝访问(端口问题)需要引入头文件winsock2.h。传输的的数据可能丢失,也可能损毁。可以通过返回的错误编码去查找错误。10060–ip地址错误。传输过程中数据不会丢失。强调快速传输而非顺序。第6个客户端无法连接。
2024-07-28 18:06:20
355
原创 TLS--线程本地存储
线程局部存储(TLS),是一种变量的存储方法,这个变量在它所在的线程内是全局可访问的,但是不能被其他线程访问到,这样就保持了数据的线程独立性。
2024-07-25 22:02:04
306
原创 c++中grpc简单使用---函数介绍及其代码演示
表示一个 gRPC 通道,客户端通过这个通道与服务端进行通信。:创建一个 gRPC 通道。target是服务端地址,例如 “localhost:50051”。是可选的通道参数,例如超时时间、压缩方式等。:表示 gRPC 通道的参数,例如超时时间、压缩方式等。:表示一个 gRPC 客户端上下文,用于存储请求和响应的相关信息。:表示 gRPC 请求的状态,包括请求是否成功、错误代码和错误信息等。:表示 gRPC 存根选项,用于配置 gRPC 存根的行为。
2024-07-24 20:10:07
1400
原创 C++异常详解
在项目中会对异常进行规范管理,所以实际中都会定义一套继承的规范体系。这样抛出的就是继承的派生类对象,捕获一个基类就可以了。// 服务器开发中通常使用的异常继承体系public:,_id(id){}protected:int _id;return str;
2024-06-06 22:08:38
261
原创 go语言yaml配置
1.decoder := yaml.NewDecoder(strings.NewReader(confString)):创建一个新的YAML解码器,并将配置字符串作为输入。yaml.NewDecoder函数用于创建一个新的YAML解码器,strings.NewReader函数用于将字符串转换为io.Reader接口。4.return nil, fmt.Errorf(“could not parse config: %v”, err):如果解析过程中出现错误,返回一个错误信息。
2024-02-03 12:06:33
476
原创 鸿蒙开发基础-工程结构
应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。应用模型包含几个要素应用组件-应用进程-应用线程-应用任务管理-应用配置文件1.是一种包含UI界面的应用组件,主要用于和用户交互。包含UI界面绘制,也是系统调度基本单位,可以给用户提供绘制界面的窗口。
2023-12-27 22:11:32
417
1
原创 package.json文件
package.json 文件是 npm 的配置文件,它定义了项目的配置、依赖关系、脚本、任务等信息。这个文件对于任何一个 npm 包都是必需的。
2023-12-23 16:22:57
424
1
原创 gin框架
Gin是一个快速而高效的Go框架,用于构建Web应用程序。它具有简单而强大的功能,如路由、中间件、模板引擎等。Gin提供了一个简单易用的API,使得开发者可以快速地构建Web应用程序。使用router.GET()、router.POST()等方法定义路由,")})在Gin框架中,路由钩子(Hook)是一种在请求处理之前或之后执行特定操作的方法。路由钩子可以用于设置请求头、记录日志、处理异常等。在Gin框架中,可以使用正则表达式或字符串来绑定URL参数,例如/user/:id。
2023-12-18 23:07:33
1130
1
原创 HTML基础
p标签和p标签之间会有一个间隙,段落前面没有缩进,会根据浏览器宽度来排版,html 内容首尾处的换行, 空格均无效. 在 html 中文字之间输入的多个空格只相当于一个空格. html 中直接输入换行不会真的换行, 而是相当于一个空格.2.target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开.其中html是根标签,head是页面属性,body是页面上显示的内容,title是页面标题。1 alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.
2023-12-17 14:14:57
896
1
原创 Docker-虚拟化和容器化
一,什么是虚拟化,容器化二.为什么虚拟化,容器化1.环境标准化2。弹性收缩3.差异化4容易维持和扩展容器比虚拟机更轻量,启动更快,因为docker不需要虚拟内核三 虚拟化实现方式虚拟机容器JVM虚拟机主机虚拟化(虚拟机)实现容器虚拟化实现原理实际的服务器或者计算机。
2023-12-13 20:52:40
958
1
原创 网络基础HTTP
1.协议:协议是一种 “约定”,这种约定可以保证, 一端发送时构造的数据, 在另一端能够正确的进行解析, 就是ok的. 这种约定, 就是 应用层协议。将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。2.header:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;3.Body:空行后面的都是正文,Content-Length来标识Body的长度;3.从服务拿数据一般使用GET,当然,如果是从服务器上面拿大文件,用POST方法。
2023-12-12 22:45:14
374
原创 Docker架构-应用数据分离架构
2.出现原因:单机资源严重竞争,导致变慢!1.简介:应用服务和数据库分开部署。红色为访问请求,蓝色为响应,数据库隔离,有一点的容灾能力。4.优点:成本相对可控,5.缺点:硬件成本变高。性能相比单机有提示,
2023-12-07 19:53:00
381
原创 centos 7配置/Linux配置
在root ALL=(ALL) ALL 下面另起一行,输入“xx ALL=(ALL) ALL”(xx表示你的用户名),然后保存退出,安装man手册sudo yum install ghostscript-9.25-5.el7.x86_64;2. chmod u+w /etc/sudoers:打开该文件写入的权限。4.chmod u-w /etc/sudoers:关闭该文件写入的权限。1.su root :先转到root。一.sudoer配置。二.man 手册配置。
2023-09-20 19:36:50
76
1
原创 C语言数组
一,一维数组1,定义:vs不会自动初始化;初始化:int arr[10]={0};剩余元素全为0: int arr[10] = {1,2,3};2.数组名为首元素地址;3.数组的存放是连续的,由低地址到高地址;注意:变量代码写的时候是由高地址到低地址;二,二位数组1.初始化:int arr [3] [4]={0};剩余元素全为0: int arr[3] [4]= {1,2,3};int arr[3] [4]= {{1},{2},{3}}:1,2,3在第一列;
2023-03-15 14:53:51
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人