多线程编程
文章平均质量分 79
XindaBlack
最菜搬砖工
展开
-
Linux Socket编程(三):固定线程数的线程池实现
目录实现固定数目的线程池线程池实现主要的私有成员变量线程池实现主要的函数线程池主要的实现原理(基于实现代码-1分析)实现代码-1实现代码-2实现固定数目的线程池线程池实现主要的私有成员变量std::mutex mtx_;std::condition_variable cond_;bool is_shutdown_ = false; // 线程池对象结束标志std::queue<s...原创 2020-05-02 22:37:43 · 797 阅读 · 0 评论 -
Linux Socket编程(二):多线程实现同时响应多个客户端
目录服务端可以同时对多个客户端的请求做出响应吗?服务端多线程实现运行测试服务端可以同时对多个客户端的请求做出响应吗?上一篇文章:Linux Socket编程(一):简单地实现进程间TCP通信在上一篇文章中讲述了Linux下通过socket简单地实现进程间TCP通信。现在做一个简单的测试:打开一个服务端,同时打开两个客户端请求与服务端连接。由第一张图可以看到,服务端只能对先连接上的客户端做出响...原创 2020-04-25 01:08:41 · 3091 阅读 · 1 评论 -
多线程交替打印数组(C++11实现)
#include <thread>#include <iostream>#include <condition_variable>#include <mutex>#include <vector>using namespace std;mutex mtx;condition_variable cond;int counter = 0;int order = 0;// k -> 交替打印数组个数// o ->原创 2020-08-29 11:17:02 · 874 阅读 · 0 评论 -
归并排序之多线程实现(C++)
归并排序使用多线程分析归并排序分为两步:不断地对半拆分数组(向下的过程);合并相邻的子数组(向上的过程)。对于拆分成的子数组,它们之间相互独立,资源不共享,因此用多线程是安全的。(在合并前,两个子线程需要运行完毕,即join阻塞当前线程直到两个子线程运行完毕)C++代码#include <iostream>#include <thread>#include <vector>#include <functional>using name原创 2020-06-27 22:42:47 · 1957 阅读 · 0 评论 -
Linux Socket编程(四):Reactor并发模式的理解和实现
#include <iostream>#include <stdio.h>#include <cstring> // void *memset(void *s, int ch, size_t n);#include <sys/types.h> // 数据类型定义#include <sys/socket.h> // 提供socket函数及数据结构sockaddr#include <arpa/inet.h>原创 2020-05-16 15:28:58 · 705 阅读 · 0 评论 -
C++多线程:互斥锁、自旋锁、条件变量、读写锁的定义与使用
互斥锁使用std::mutex类;条件变量使用std::condition_variable类;自旋锁通过C++11的std::atomic类实现,使用“自旋”的CAS操作。#include <thread>#include <mutex>#include <iostream>#include <atomic>#include <co...原创 2020-05-06 12:27:16 · 2061 阅读 · 0 评论