自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 使用LUA实现 IEEE754算法

十六进制的HEX字符串 转换成 浮点数function hexToFloat( hexString ) if hexString == nil then return 0 end local t = type( hexString ) if t == "string" then hexString = tonumber(hexString , 16) end local hexNums = hexString local sign = math.modf(hexNums/(2

2022-03-09 14:29:53 686 3

原创 socket学习02(发送结构化消息)

发送结构化消息网络数据报文的格式定义:报文有两部分:包头和包体,是网络消息的基本单元包头:描述本次消息的大小,描述数据的作用包体:数据server// Sock01.cpp : 定义控制台应用程序的入口点。////#define _WINSOCK_DEPRECATED_NO_WARNINGS //属性 预处理 添加#include "stdafx.h"#include<WinSock2.h>#include<Windows.h>//#pragma comm

2022-01-23 13:27:55 2223

原创 socket学习01(socket函数参数介绍)

socket套接字函数接口参数:1.SOCKET sock = socket(int af, int type, int protocol);(1)af 为地址族(Address Family),IP 地址类型,常用的有 AF_INET 和 AF_INET6。AF_INET 表示 IPv4 地址,例如 127.0.0.1;AF_INET6 表示 IPv6 地址,例如 1030::C9B4:FF12:48AA:1A2B。**注意:127.0.0.1,它是一个特殊IP地址,表示本机地址(2)type 为

2022-01-23 13:22:55 6312

原创 C++多线程学习笔记11(WINDOWS临界区、自动析构技术、recursive_mutex 递归的独占互斥量、带超时功能的独占互斥量 std::timed_mutex)

1.WINDOWS临界区同一个线程中,windows"相同临界区变量代表临界区"的进入EnterCriticalSection(&my_winsec) 和LeaveCriticalSection(&my_winsec);成对出现;可以多次进入同一线程,lock() 同一个互斥量多次,报异常// 线程6.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<thread>#include<iostream>

2022-01-19 15:55:00 486

原创 C++多线程学习笔记10(std::atomic,std::async 补充)

一、std::atomic一般atomic原子操作,针对 ++、–,+=,&=,|= ,~= 是支持的,其他可能不支持// 线程9.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<thread>#include<iostream>using namespace std;#include<future>std::atomic<int> g_mycount = 0;//定义一个全局变

2022-01-19 14:49:21 506

原创 C++多线程学习笔记09(std::future、std::shared_future、std::atomic原子操作)

2022-01-17 15:22:17 578

原创 C++多线程学习笔记08(future 、packaged_task 、promise)

一:std::async std::future 创建后台任务,并返回值希望线程返回一个结果std::async 是一个函数模板,用来启动一个异步任务;之后返回一个std::future对象,是个类模板。“启动一个异步任务”,自动创建一个线程并开始执行对应的线程入口函数,返回std::future对象,里面含有线程入口函数所返回的结果。使用get()函数获取。参数:1)std::launch::deferred 表示线程入口函数调用被延迟到std::future 的 wait()或者 get()

2022-01-16 14:37:50 371

原创 C++多线程学习笔记07(条件变量)

2022-01-15 15:55:40 455

原创 C++多线程学习笔记06(单例设计模式)

2022-01-15 15:23:03 109

原创 C++多线程学习笔记05(unique_lock )

unique_lock学习使用unique_lock 取代 lock_guardunique_lock是个类模板,一般情况lock_guard满足需求,lock_guard取代mutex的lock()和unlock()。但是unique_lock要比lock_guard灵活的多,但内存占用多,效率差点。unique_lock的第二个参数2.1 std::lock_guardstd::mutex sbguard(my_tuex,std::adopt_lock); //adopt_lock

2022-01-15 14:12:57 318

原创 C++多线程学习笔记04(多线程创建、等待、数据共享,互锁)

一.创建和等待多个线程总结:(1)执行顺序是乱的,跟操作系统内部对线程的运行调度机制有关(2)主线程等待子线程结束,最后主线程结束(3)将thread对象放入容器中,对创建大量的线程管理方便void myprint(int inum){ cout << "myprint线程开始执行,编号 = "<<inum << endl; cout << "myprint线程结束执行,编号 = " << inum << endl;}

2022-01-14 18:03:23 577

原创 C++多线程学习笔记03(线程参数)

线程参数的研究1.传递临时对象作为线程参数(1)在创建线程的同时,构造临时对象的方法传递参数是可行的(2)传递int简单类型参数,建议都是值传递,不要引用。(3)传递类对象,避免隐式类型转换,全部在创建线程时构建出临时对象,然后在函数参数里,使用引用,否则系统会再次构造一次对象。(4)建议不适用detach(),只是用join();2.线程ID不同线程,线程ID不同 可以获取线程ID std::this_thread::get_id()3.传递类对象,智能指针作为线程参数4.用成员函数指

2022-01-14 14:34:14 354

原创 C++多线程学习笔记02(创建线程)

1.包含头文件 thread主程序从main()开始执行,进程是否完毕标志是 主线程 是否完毕所以一般情况:想保持子线程运行状态,主线程要一直保持运行。创建线程:1.函数thread mytobj(myprint); // 创建线程 myprint可调用对象2.类对象TA ta;thread mytoj1(ta);3.lambda表达式auto mylambda = [] {cout << “我的线程开始” << endl;cout <<

2022-01-14 13:45:04 140

原创 C++多线程学习笔记01(概念)

这里写自定义目录标题生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入```cpp在这里插入代码片# 欢迎使用Markdown编辑器你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

2022-01-14 13:17:46 102

空空如也

空空如也

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

TA关注的人

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