自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (3)
  • 收藏
  • 关注

原创 Star_Tool: tool包下​​协程句柄co_handle使用

由于C++20中推出了协程,加上当前CPU频率的日新月异,协程在未来高性能计算上必然占有一席之地,本次在tool中添加了协程句柄的直接使用方法。 C++的协程主要围绕着co_await、co_yield、co_return 这三个关键字进行的,然后通过返回的句柄的形式找到对应的名字的类进行协程的挂起、临时返回、结束协程的三个操作。 后续C++协程的具体原理估计会再写一篇文章详细介绍,本章详细介绍我的协程句柄的使用方案。 由于协程是否挂起、协程是否再co_

2023-09-04 17:34:20 78

原创 Star_Tool: tool包下get_set依赖设置器(getter_setter退化版本,更加贴切C#的get、set调用方法)

本节的版本get_set将会将变量数据放在外面,而以保存引用的方式保存在get_set,并只有在外部赋值时才会走依赖过滤器。它保留了大部分getter_setter方法包括change_setter、change_getter、move、copy、ref等等,但数据是通过在构造时传入数据的引用实现的,这个方法的好处是将数据的初始化和依赖过滤器的初始化分离开,让使用者用它编写代码时逻辑更加清晰,而不用在构造函数中特意去调用change_setter、change_getter。其data传入数据本体的引用。

2023-05-22 19:50:44 277

原创 Star_Tool: star::thread 可中断标志位的扩展std::thread

Star_Tool: star::thread 可中断标志位的扩展std::thread在并发编程的学习中,我了解到由于C++没有对线程中断的标准支持,所以我扩写了该类并封装进了该star命名空间中。其中有部分交叉编译和编译扩展的相关方面知识,我会单独开一个编写思路指南,但当前博客主要为使用文档,就不赘述实现原理了,现在开始介绍相关公共接口:

2023-05-18 02:10:53 124

原创 Star_Tool: tool包下getter_setter依赖设置器(类似C#的get、set)

Star_Tool: tool包下getter_setter依赖设置器(类似C#的get、set)添加一些使用方法文档。当前的工具是基于代理模式设计的依赖注入与获取器

2023-05-18 01:41:32 126 1

原创 Star_Tool:一个C++跨Windows和Linux的工具库

这个库我对std::thread进行了更多功能的封装,例如可中断多线程标注输入,线程中断标志设置,还有一个线程池工具,不过我暂时未对他们进行耦合操作,只有可中断线程和可中断标准输入可以耦合使用,线程池无法与可中断线程耦合使用,后续可能会进行更新。封装了对于tcp、udp、ipv4、ipv6等规范的类,可以进行跨Windows和Linux 的网络基本通信,暂时未完善关于非阻塞还有紧急信号带的规范,待后续更新。Star_Tool:一个C++跨Windows和Linux的工具库

2023-05-16 22:44:58 218

原创 C++踩坑系列:模板编程的cpp与h分离

在编译过程中,g++编译器会对每一个cpp文件进行单独编译,最后进行链接操作,然而,模板函数或者模板类在编译时遇到实例化参数就会单独编译出模板参数实例化的代码,那么意味着这个步骤是在编译阶段就完成了,编译阶段由于一个cpp文件内只有模板函数的实现而没有模板函数的调用,也就没有实例化代码的产生(通俗来讲就关于模板的代码一行也没有),那么在链接的时候就根本不会有代码去链接了。2)直接把实现写在.h文件里吧,让调用者去选择模板参数,虽然会造成单个.obj文件膨大,但好过内容还是完整的。

2023-05-16 01:38:56 279

原创 C++ 类设计小工具,依赖设置器(类似C#的get、set)

C++ 类设计小工具,依赖设置器(类似C#的get、set)利用两个lambda函数表达式完成对getter和setter的注入,缺点是我没有办法明确的告知使用者哪一个是getter,哪一个是setter。接下来进行函数运行测试:

2023-03-27 02:34:54 334

原创 学习小计,Winsock中的recv和send的flags标志位

学习小计,Winsock中的recv和send的flags标志位,因为C++没有标准库,打算利用系统宏来做一个跨Windows和Linux的网络编程库,做一个统一接口的网络库,需要学习winsock和sys/socket.h,今天学习到winsock的recv和send,其中书里没有详细介绍这两个函数的flags标志位功能,网上收集资料做了一下学习小计,做一个flag总结。后续会在C++专栏里把我做的跨平台网络接口库发布出来,稳定性可能不太好(有待完善)

2023-03-17 21:58:17 416

原创 C++多进程工具-无锁线程安全栈

C++多进程工具-无锁线程安全栈,功能满足pop和push,可用移动构造函数,满足线程安全,利用利用单向链表和多线程原子变量原语compare_exchange_weak制成,效率略高于锁式栈,可能会有活锁风险,取决于处理机调度。可copy直接使用

2023-03-12 16:49:42 169

原创 重返C++:第一站,关于class的默认类与拷贝、移动构造赋值函数

重返C++:第一站,关于class的默认类与拷贝、移动构造赋值函数编译器都会默认地为这个class创建几个函数(适用c++高版本编译器),分别是:默认构造函数 默认析构函数默认拷贝构造函数默认拷贝赋值函数默认移动构造函数默认移动赋值函数

2023-03-06 19:31:40 204

原创 JAVA:多线程的读写锁的完成

JAVA:多线程的读写锁的完成,在访问互斥资源的时候,当读互斥资源时,如果没有线程写互斥资源,并且没有线程等待去写互斥资源时,那么就允许所有的读线程进入。当写互斥资源时,如果存在读互斥资源的线程或者写互斥资源的线程,那么就等待他们结束才能进入。可是然而我现在只会用synchronized,可synchronized只能相当于一把锁,直接用显然不现实,后来想到至少计算机系统课上写的信号量原理,可是我不会原子层面操作,但是转念一想,只要给变量操作那边加一个synchronized(this),那不就相当于原子操

2022-12-01 01:30:35 203

原创 Java:从零开始创建的一个开源的Web服务器

Java:从零开始创建的一个开源的Web服务器写在前面:最近在学web前后端内容,其中web服务器搭建大多采用现成的tomcat以及serverlet,今天突发奇想想着能不呢自己写一个web服务器,省去大量的对我来讲没什么用的解析过程,这个简单项目由此展开(所以这个项目没有采用任何框架,都是从零开始写的web服务器)

2022-11-17 17:45:27 1027

原创 一个简单的C++大数运算包装类(类似高精度)

C++:一个类高精度的封装

2022-10-16 14:04:27 474 1

空空如也

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

TA关注的人

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