![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 69
大脸猫_min
这个作者很懒,什么都没留下…
展开
-
static_cast 和 dynamic_cast
static_cast 和 dynamic_cast 的一些区别原创 2024-05-05 21:58:20 · 151 阅读 · 0 评论 -
多线程编程7. 线程池(2)
一般用户所需要执行的任务函数,参数数量不确定,类型不确定,是否有返回值也不确定,所以想要表示用户的任务函数,需要用到函数模板进行泛化表示原创 2024-04-27 16:11:22 · 138 阅读 · 0 评论 -
多线程编程6. std::future、std::promise、std::packaged_task和std::async
std::future提供了一种访问异步操作结果的机制。如果我们想要得到一个线程运行的结果,一般来说,需要用到全局变量,但是从安全的角度上来说,全局变量并不合适。因此,C++11提供了std::future类模板。原创 2024-04-27 16:10:45 · 756 阅读 · 0 评论 -
多线程编程5. 线程池(1)
线程池的优点减少资源的消耗:较少线程创建和销毁造成的消耗提高响应速度:当任务到达的时候,就能够立刻执行,减少了线程创建和销毁的时间能够更好地管理线程原创 2024-04-27 16:09:57 · 226 阅读 · 0 评论 -
多线程编程4. std::condition_variable
用于线程的同步,用来实现线程等待和通知机制。条件变量通常与互斥量一起使用。`std::mutex`用于确保在任何时候只有一个线程可以访问共享数据,而`std::condition_variable`则用于在特定条件下唤醒等待的线程。原创 2024-04-27 16:08:36 · 627 阅读 · 0 评论 -
多线程编程3. std::call_once
`std::call_once` 的作用是,确保在多个线程中同时调用 `call_once` 时,只有一个线程能够成功执行 `func` 函数,而其他线程则会等待该函数执行完成。`注意` : std::call_once 只能在子线程中使用,在主线程中使用会报错原创 2024-04-27 16:05:19 · 149 阅读 · 0 评论 -
多线程编程2. 多线程数据共享
在多个线程中共享数据时,如果多个线程同时访问同一个变量,并且其中至少有一个线程对该变量进行了写操作,那么就会出现数据竞争问题。数据竞争可能会导致程序崩溃、产生未定义的结果,或者得到错误的结果。常见的同步机制包括**互斥量、条件变量、原子操作**等原创 2024-04-27 16:00:09 · 700 阅读 · 0 评论 -
多线程编程1. 线程库的基本用法
使得该线程与主线程分离,让其在后台运行,即使主线程提前结束了,子线程也会继续执行,知道结束。程序运行到这句话时不会等待,继续往下执行。返回false: (1) 线程已经被 join() 或者 detach();(2) 线程对象已经被移动。主线程中调用这句话时,如果th子线程还没有执行完毕,则主线程会卡在这里等待子线程执行完毕,再继续往下执行。返回true: 说明该线程还没有被join() 或者detach。判断该线程是否能够调用 join()原创 2024-04-27 15:57:41 · 239 阅读 · 0 评论 -
利用 QTcpSocket 实现的进程间通信
简介做一个简答的进程间通信的原型,主要是为了了解进程间通信的一些原理本文是利用 QTcpSocket 来实现的。主要步骤实现之后的UI界面如下,主要步骤有一下几步:1、ServerSocket 点击建立连接(此时 ServerSocket 开始监听端口为 5555 的其他程序)2、WorkerSocket 点击连接服务器(通过制定的IP地址和端口主动连接服务器)3、连接之后可以开始互相发送消息。代码实现列出了关键的几个文件// ServerSocket.h#pragma once原创 2021-07-25 11:15:03 · 460 阅读 · 0 评论