自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

静水流深

新浪博客:http://blog.sina.com.cn/creater2015

  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++实现线程池

实现线程池✏ 线程池???? 1、作用:异步解耦线程池的运行逻辑:线程池中的线程在不断竞争任务队列中的任务。???? 2、组成任务队列线程集合管理组件???? 3、TODO增加线程删除过度冗余的线程快手面试题:查询一个任务是否被执行完,生产者消费者模式(任务队列用环形阻塞队列即可)头条面试题:如果一个任务在执行过程中线程被中断(也许是时钟周期已到,也许是等待资源,也许是被中断,等等),后面怎样保证继续被同一个线程执行。C-glibc实现#include <stdi

2020-10-29 14:46:44 720

原创 C++实现环形队列

实现环形队列线性队列原理图:假设是长度为5的数组,初始状态,空队列如所示,front与 rear指针均指向下标为0的位置。然后入队a1、a2、a3、a4, front指针依然指向下标为0位置,而rear指针指向下标为4的位置。出队a1、a2,则front指针指向下标为2的位置,rear不变,如下图所示,再入队a5,此时front指针不变,rear指针移动到数组之外 ,造成假溢出的现象:为了解决这个问题,引入了循环队列的概念。循环队列原理图:可以看到当循环队列属于上图的d1情况时,是无法判断

2020-10-29 14:44:05 3129 3

原创 C++实现阻塞队列

实现阻塞队列阻塞队列是后台开发中多线程异步架构的基本数据结构,像python,java 都提供线程安全的阻塞队列,c++ 可能需要自己实现一个模板。阻塞队列阻塞队列:阻塞队列是一个在队列基础上又支持了两个附加操作的队列。支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:队列空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。简而言之,阻塞队列是生产者用来存放元素、消费

2020-10-29 14:36:24 2694

原创 双线程交替打印

实现双线程交替打印C++实现双线程交替打印1~20之内的数。两个条件锁std::mutex mtx;std::condition_variable cond1, cond2;static int num = 1;void thread1(){ while(true){ unique_lock<mutex> lock(mtx); cout << "Thread 1 :" << num << endl;

2020-10-29 14:32:39 145

原创 数据结构:线性表

1、线性表1.1、基本技能 null/nil 异常处理 dummy node 哑巴节点 快慢指针 对结点进行增、删、改、查等操作 翻转链表 合并两个链表 找到链表的中间节点 无法高效获取长度,无法根据偏移快速访问元素,是链表的两个劣势。然而面试的时候经常碰见诸如获取倒数第k个元素,获取中间位置的元素,判断链表是否存在环,判断环的长度等和长度与位置有关的问题。这些问题都可以通过灵活运用双指针来解决。 双指针并不是固定的公式,而是一种思维

2020-10-08 17:31:06 110

原创 C标准库之stdarg

✏ 1、可变长参数C语言支持可变长参数,正常情况下C的函数参数入栈规则为__stdcall,它是从右到左的,即函数中的最右边的参数最先入栈。例如,对于函数:void func(int a, char b, int c, double d, int e) { int f = 0; printf("&a = 0x%p\n", &a); printf("&b = 0x%p\n", &b); printf("&c = 0x%p\n", &a

2020-10-08 15:37:11 2071

原创 C标准库之errno

<errno.h>定义了整数变量extern int errno。errno是一个由POSIX和ISO C标准定义的符号,由系统调用和某些库函数根据事件来设置它,用以表明哪里有问题。这个值只有当调用的返回表明错误的时候有用(比如,对于大多数的系统调用是-1,对于大多数的库函数来说是-1或NULL),正确的函数也可以修改errno。Linux中系统调用的错误都存储于 errno 中,errno 由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。在程序启动时,errno

2020-10-08 15:20:58 1642

原创 C标准库之stdio

✏ 1、函数???? 1.1、二进制IOsize_t fread( void *buffer, size_t size, size_t count, FILE *stream );size_t fwrite ( void *buffer, size_t size, size_t count, FILE *stream );buffer是用于保存数据的内存指针,size是缓冲区字节数,count是读入/写入的元素数,stream是目标流。???? 1.2、文件访问// 使用给定的模式 mode

2020-10-08 15:15:03 534

原创 函数指针 & 回调函数

✏ 1、指针函数指针函数: 本质是一个函数,不过它的返回值是一个指针。其声明的形式如下所示:ret *func(args, ...);指针函数和普通函数没有区别,但有一点需要注意的是: 避免出现返回局部变量指针的情况。 看例子:int* getSum(int n){ if (n < 0) return NULL; int sum = 0; // static int sum = 0; for (int i = 0; i < n; i++)

2020-10-08 15:08:45 295

Java版CORBA的小程序

一个用JAVA实现的基于CORBA技术的C/S模式的小程序,用于实现多项式的加法,两个Client分别发给Server一个多项式,服务器端将多项式相加后将结果发给两个客户端。

2018-01-21

空空如也

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

TA关注的人

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