DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  C++/C

上一页 1 2 3 4 5 6 7 8 ··· 47 下一页

摘要:【并发编程七】进程通信——套接字(socket)_80行代码实现一个聊天软件 一、简介 二、相关知识介绍 1、winsock1.h、winsock2.h 2、如何使用ws2_32.dll 3、WSAStartup() 函数 4、socket 5、bind 5、listen 6、accept 7、co 阅读全文
posted @ 2023-03-16 16:18 DoubleLi 阅读(508) 评论(0) 推荐(0) 编辑

摘要:【并发编程四】c++进程通信——共享内存(shared memmory) 一、共享内存(shared memmory) 二、共享内存的过程 1、processA 写入共享内存 2、processB 读取共享内存 三、代码demo 1、processA demo 2、processB demo 四、输 阅读全文
posted @ 2023-03-16 16:14 DoubleLi 阅读(5208) 评论(0) 推荐(0) 编辑

摘要:windows进程通信和Linux进程通信 一、进程通信(IPC) 二、Linux进程通信 1、管道(pipe) 1.1、匿名管道 1.1、命名管道(有名管道) 2、消息队列(message queue) 3、共享内存(shared memmory) 4、信号量(Semaphore) 5、信号(si 阅读全文
posted @ 2023-03-16 16:11 DoubleLi 阅读(367) 评论(0) 推荐(0) 编辑

摘要:【并发编程三】C++实现通信——管道(pipe) 一、管道(pipe) 二、匿名管道 1、简介 2、父子进程:匿名管道的通信过程? 3、相关函数 3.1、创建管道CreatePipe 3.2、写入管道WriteFile 3.3、读取管道ReadFile 3.4、获取句柄GetStdHandle 4、 阅读全文
posted @ 2023-03-16 16:09 DoubleLi 阅读(3337) 评论(0) 推荐(0) 编辑

摘要:【并发编程二】c++创建子进程CreateProcess() 一、创建子进程 二、demo 三、构建、编译、运行 四、相关知识介绍 1、CreateProcess 参数介绍 1.1、lpApplicationName 1.2、lpCommandLine 1.3、lpProcessAttributes 阅读全文
posted @ 2023-03-16 15:57 DoubleLi 阅读(2075) 评论(0) 推荐(0) 编辑

摘要:【并发编程六】c++进程通信——信号量(semaphore) 一、概述 二、信号量 三、原理 四、过程 1、进程A过程 2、进程B过程 五、demo 1、进程A 2、进程B 六、输出 七、windows api介绍 1. 创建信号量 CreateSemaphore() 2. 打开信号量 OpenSe 阅读全文
posted @ 2023-03-16 15:45 DoubleLi 阅读(2378) 评论(0) 推荐(0) 编辑

摘要:目录 windows使用CreateEvent、SetEvent、ResetEvent、WaitForSingleObject linux使用sem_init、sem_wait、sem_trywait、sem_post、sem_destroy windows使用CreateEvent、SetEven 阅读全文
posted @ 2023-03-16 14:10 DoubleLi 阅读(619) 评论(0) 推荐(0) 编辑

摘要:目录 一、什么是线程同步? 二、为什么要使用线程同步? 三、线程同步的五种方式 1、互斥锁 互斥锁操作函数 互斥锁的属性 2、自旋锁 自旋锁操作函数 自旋锁的属性 3、读写锁 读写锁的操作函数 读写锁的特点 读写锁的属性 读写锁的注意事项 4、信号量 信号量操作函数 5、条件变量 条件变量操作函数 阅读全文
posted @ 2023-03-16 11:43 DoubleLi 阅读(641) 评论(0) 推荐(0) 编辑

摘要:前言 Linux 中没有 Windows 系统中的 CreateEvent()、WaitEvent()、SetEvent()、ResetEvent() 等函数,本文将介绍如何使用 pevents 替代 Linux 缺失的函数。 pevents 介绍 pevents 的简介 pevents 是一个跨平 阅读全文
posted @ 2023-03-15 18:12 DoubleLi 阅读(940) 评论(0) 推荐(0) 编辑

摘要:1、第一种方法(win和linux通用) //头文件.h#ifndef _HIK_EVENT_H_ #define _HIK_EVENT_H_ #ifdef _MSC_VER #include <Windows.h> #define hik_event_handle HANDLE #else #in 阅读全文
posted @ 2023-03-15 18:00 DoubleLi 阅读(344) 评论(0) 推荐(0) 编辑

摘要:最近看代码发现,在多线程中实现有关throttle和阻塞等有关的功能时,条件变量的使用是最常见的。 首先先对条件变量有个基本的认识 条件变量的基础知识 条件变量std::condition_variable定义在头文件<condition_variable>中。 条件变量用于阻塞一个或多个线程,直到 阅读全文
posted @ 2023-03-15 17:45 DoubleLi 阅读(298) 评论(0) 推荐(0) 编辑

摘要:摘要 C++11标准从发布到现在已经快10年了。笔者在工作中陆陆续续学习并应用了移动语义(move semantics),智能指针(unique_ptr<>, shared_ptr<>),lamda等C++11的新特性。总体感觉还是真香。最近因为项目开发,要搭建多线程的自动化测试,于是尝试使用了条件 阅读全文
posted @ 2023-03-15 17:45 DoubleLi 阅读(175) 评论(0) 推荐(0) 编辑

摘要:在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用gdb+python脚本调试死锁问题,以及如何在程序运行过程中检测死锁。 首先介绍什么是死锁,看下维基百科中的定义: 死锁(英语:Deadlock),又译为死结,计算机科学名词。当两个以上 阅读全文
posted @ 2023-03-15 17:01 DoubleLi 阅读(462) 评论(0) 推荐(0) 编辑

摘要:官方链接:https://github.com/cesanta/mongoose [C++]-网络库mongoose简介_alwaysrun的博客-CSDN博客_c++ mongoose Mongoose-基于C的Web服务器介绍和使用 - 百度文库 https://blog.csdn.net/qi 阅读全文
posted @ 2023-03-14 22:57 DoubleLi 阅读(983) 评论(0) 推荐(0) 编辑

摘要:Sion是一个轻量级简单易用的c++请求库 仅单个头文件,自带std::string的扩展 跨平台,支持linux, win, mac... 有着良好的异步支持,可以选择以自己喜欢的方式发送异步请求, callback, await, 事件循环, etc. 支持文本及二进制的响应体 支持分块(chu 阅读全文
posted @ 2023-03-14 22:43 DoubleLi 阅读(116) 评论(0) 推荐(0) 编辑

摘要:背景 在开发项目的一个feature时,发现有一个线程hang住,一直无法向元数据管理模块发送心跳,导致线程所在的机器被drop掉,组里的一个同学使用gdb找到了hang住的原因,于是自己也决定学一下这种方法。 测试程序 启动两个线程,竞争互斥锁,其中一个线程拿到锁之后不释放,两个线程因为死锁必然会 阅读全文
posted @ 2023-03-14 20:03 DoubleLi 阅读(949) 评论(0) 推荐(0) 编辑

摘要:【多线程】C++11多线程(简约但不简单) 目录 ​ ​一、简单使用​​ ​ ​1、线程参数​​ ​ ​2. 类成员函数做为线程入口​​ ​ ​3. join: 等待线程执行完成​​ ​ ​4. 线程暂停​​ ​ ​5. 线程停止​​ ​ ​二、进阶(更多你可能需要知道的)​​ ​ ​1. 拷贝​​ 阅读全文
posted @ 2023-03-13 23:01 DoubleLi 阅读(215) 评论(0) 推荐(0) 编辑

摘要:文章目录 1 原子操作 2 C++11原子变量 3 使用原子变量 3.1 没有使用线程互斥的数据操作 3.2 使用互斥量保证线程互斥 3.3 使用原子量std::atomic保证数据互斥 1 原子操作 原子操作:一个独立不可分割的操作。多线程编程需要保证线程安全,而线程安全一个很重要的特性就是原子性 阅读全文
posted @ 2023-03-02 19:31 DoubleLi 阅读(547) 评论(0) 推荐(0) 编辑

摘要:工作中可能会遇到这种情况:想用json变量的内容但又不需要用全部,想把不需要的项删除掉。此时removeMember派上了用场。removeMember有好几个重载的版本,这里只讲3个常用的版本。 1,removeMember普通成员 void removeMember() { Json::Valu 阅读全文
posted @ 2023-02-23 11:38 DoubleLi 阅读(134) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 47 下一页
点击右上角即可分享
微信分享提示