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

2021年1月14日

C++ STL快速入门

摘要: 首先要说明一下这个STL内容都是概述性的,不是详细的内容,简单来说就是一些大概的框架性的,可以应付一些面试情况。但是要深入学习的话,必须要找更加详细的资料。 不罗嗦,进入正题。 STL是C++中的标准模板库,本文不深究STL的发展以及版本,以囫囵吞枣的形式讲一些STL组成部分。 STL容器是STL学 阅读全文

posted @ 2021-01-14 16:05 一点sir 阅读(200) 评论(0) 推荐(0) 编辑

2020年12月30日

C++11多线程编程(九)——总结篇

摘要: 这篇是多线程编程系列的总结篇,复盘一下前面讲到的多线程的各个知识点。要想成为一个优秀程序员,多线程编程是永远也绕不开的话题,必须要掌握,不同的语言实现多线程的方式都各不相同,但原理都是相通的。 为何需要多线程,因为要充分利用CPU的性能,特别是多核CPU,提升效率,提高用户体验。 早期的C++在语言 阅读全文

posted @ 2020-12-30 11:24 一点sir 阅读(203) 评论(0) 推荐(0) 编辑

2020年12月29日

C++11多线程编程(八)——死锁问题

摘要: 一、死锁现象 看到“死锁”二字,你是不是慌得不知所措。死锁,顾名思义就是这个锁死掉了,再也动不了了。那死锁是怎么产生的呢?当你对某个资源上锁后,却迟迟没有释放或者根本就无法释放,导致别的线程无法获得该资源的访问权限,进而程序无法运行下去,有点像是阻塞的现象。但是阻塞是一种正常现象,而死锁可以说是一种 阅读全文

posted @ 2020-12-29 13:55 一点sir 阅读(317) 评论(0) 推荐(0) 编辑

2020年12月28日

C++11多线程编程(七)——信号量的实现

摘要: 一、为何需要信号量 信号量用来干嘛的呢?搜寻答案的话,很多人都会告诉你主要用于线程同步的,意思就是线程通信的。简单来说,比如我运行了2个线程A和B,但是我希望B线程在A线程之前执行,那么我们就可以用信号量来处理。有些人可能会疑惑,那么麻烦干嘛?你不是要B线程先执行吗?那么我让A线程休眠一点时间不就可 阅读全文

posted @ 2020-12-28 16:54 一点sir 阅读(960) 评论(0) 推荐(0) 编辑

2020年12月25日

C++11多线程编程(六)——线程池的实现

摘要: 学一门新技术,还是要问那个问题,为什么我们需要这个技术,这个技术能解决什么痛点。 一、为何需要线程池 那么为什么我们需要线程池技术呢?多线程编程用的好好的,干嘛还要引入线程池这个东西呢?引入一个新的技术肯定不是为了装逼,肯定是为了解决某个问题的,而服务端一般都是效率问题。 我们可以看到多线程提高了C 阅读全文

posted @ 2020-12-25 10:44 一点sir 阅读(478) 评论(0) 推荐(0) 编辑

2020年12月23日

C++11多线程编程(五)——生产消费者模型之条件变量

摘要: 当某个线程持有这把锁的时候(就是所谓的加锁),那么这个线程是独占所有的资源,这里的资源指的是执行的权限,其他要抢夺资源的线程都不得不等待。在很多情况下,这都容易适用,但是有些情况下,却会产生一些异常情况。 在生产消费者模型当中,肯定都会用到互斥锁的机制的,当生产者往队列中放数据的瞬间,消费者是不能取 阅读全文

posted @ 2020-12-23 14:08 一点sir 阅读(332) 评论(0) 推荐(0) 编辑

2020年12月22日

C++11多线程编程(四)——原子操作

摘要: 今天和大家说说C++多线程中的原子操作。首先为什么会有原子操作呢?这纯粹就是C++这门语言的特性所决定的,C++这门语言是为性能而生的,它对性能的追求是没有极限的,它总是想尽一切办法提高性能。互斥锁是可以实现数据的同步,但同时是以牺牲性能为代价的。口说无凭,我们做个实验就知道了。 我们将一个数加一再 阅读全文

posted @ 2020-12-22 16:13 一点sir 阅读(378) 评论(0) 推荐(0) 编辑

2020年12月21日

C++11多线程编程(三)——lock_guard和unique_lock

摘要: 如果熟悉C++多线程的童鞋可能有了解到实现的互斥锁的机制还有这个写法 lock_guard<mutex> guard(mt); 那么这句话是什么意思呢?为什么又要搞个这样的写法呢? 这个也是构造互斥锁的写法,就是会在lock_guard构造函数里加锁,在析构函数里解锁,之所以搞了这个写法,C++委员 阅读全文

posted @ 2020-12-21 14:58 一点sir 阅读(642) 评论(0) 推荐(0) 编辑

2020年12月6日

C++11多线程编程(二)——互斥锁mutex用法

摘要: 还是那个问题,编程世界中学习一个新的技术点,一定要明白一件事,为什么要出现这个技术点,只有弄懂了这个才能从根本上有学习的动力。那么为什么要出现多线程锁这个东西呢?一句话概括的话。 为了保证数据的准确性! 计算机就是为了计算数据才诞生的,如果不能保证数据准确的话,任何技术都只是空中楼阁,多线程技术也是 阅读全文

posted @ 2020-12-06 14:48 一点sir 阅读(720) 评论(0) 推荐(0) 编辑

2020年12月4日

C++11多线程编程(一)——初始多线程

摘要: 首先还是那个问题,我们为什么需要多线程?单线程编程做的好好的,又简单又好用,为什么要弄出一个多线程编程呢?难道前人是为了设计而设计了个多线程的?显然这是不可能,那么是什么原因呢?用最精炼的语言概括无非就是以下两个原因。 效率和用户体验 效率主要体现在服务端,用户体验更多是体现在客户端,当然肯定不是说 阅读全文

posted @ 2020-12-04 22:29 一点sir 阅读(397) 评论(0) 推荐(0) 编辑

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

导航