08 2020 档案
摘要:方法1: 右键程序-->属性-->兼容性-->以管理员身份运行此程序打勾 方法2: VS中设置(C/C++) 属性-->连接器-->清单文件-->UAC执行级别-->requireAdministrator (/level='requireAdministrator'),这样设置,生成程序后,运行时
阅读全文
摘要:1.打开并初始化CAN设备代码: private void OpenCAN() { if (!IsOpen) { ControlCAN.VCI_INIT_CONFIG initCOnfig = new ControlCAN.VCI_INIT_CONFIG(); initCOnfig.Mode = 0
阅读全文
摘要:1.原子操作:原子操作可以理解为不需要用到互斥量加锁技术的多线程并发编程方式。 2.特点 (1):当程序中代码频繁用到互斥量(锁),此时原子操作的效率比互斥量(锁)高。 (2):原子操作一般针对的是一个变量,而不是一个代码段, 3.代码对比,以下代码1比代码2效率高很多 代码1 #include <
阅读全文
摘要:1.用到函数模板std::async,和类模板std::future 2工作原理:std::async用来启动一个异步任务,启动任务之后,它返回一个std::future对象,这个对象含有线程入口函数所返回的结果(线程返回的结果),线程执行完,我们可以通过调用future对象的成员函数get()来获
阅读全文
摘要:1.作用:在C++11中,我们可以使用条件变量(std::condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,并释放CPU,直到某种条件出现,这些线程才会被唤醒。条件变量需要和互斥量(锁)一起搭配使用。 用在多线程中。 线程A:等待一个条件满足 线程B
阅读全文
摘要:1.释放单例模式中的对象问题 2.单例模式中多线程时数据共享问题 #include <iostream> #include<thread> #include<string> #include<vector> #include<algorithm> #include<windows.h> #inclu
阅读全文
摘要:死锁问题被认为是线程/进程间切换消耗系统性能的一种极端情况。在死锁时,线程/进程间相互等待资源,而又不释放自身的资源,导致无穷无尽的等待,其结果是任务永远无法执行完成。 死锁出现的场景:当代码中有2个锁,锁A和锁B,也有2个线程,线程1和线程2,线程1执行时,先抢到锁A,然后要去抢占B,同时线程2先
阅读全文
摘要:#include <iostream> #include<thread> using namespace std; void ThreadFun(const int &arr1,char *pBuf) { cout << arr1 << endl; cout << pBuf << endl; ret
阅读全文
摘要:1.用一个初始函数创建一个线程 #include <iostream> #include<thread> using namespace std; void PinrtFun() { cout << " 子线程运行" << endl; } int main() { std::thread t1(Pi
阅读全文
摘要:https://www.mysqlzh.com/api/1.html
阅读全文
摘要:在三的基础上增加多线程,提高了服务器处理客户端数据的能力,客户端尽可能的实现了高并发,此版本只是客户端给服务器发消息,服务器不给客户端回消息。 Server部分:一共4个文件(server.cpp,EasyTcpServer.hpp,MessageHeader.hpp和CELLTimestamp.h
阅读全文
摘要:#ifndef _CELL_TIMESTAMP_HPP_ #define _CELL_TIMESTAMP_HPP_ #include<chrono> using namespace std::chrono; class CELLTimestamp { public: CELLTimestamp()
阅读全文
摘要:在二的基础上收发数据进行了改进(数据接收增加了二次缓存),提供吞吐量。 Server部分:一共4个文件(server.cpp,EasyTcpServer.hpp,MessageHeader.hpp和CELLTimestamp.hpp) server.cpp: #include"EasyTcpServ
阅读全文
摘要:例如现在有个字符串时间为:“2020-08-09T06:51:16.798",把它转换为时间戳,搜了半天没搜到好的办法,只能字符串截取取出年月日时分秒。 time_t LocateToTime_t(char *tTime){ struct tm sTm; time_t tReturnTime; me
阅读全文
摘要:Wireshark的过滤器分为抓包过滤器和显示过滤器 抓包过滤器: 1.语法 2.举例
阅读全文