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

2021年2月13日

C++程序编译之谜(二)——隐藏源码,动态和静态链接库的秘密

摘要: 前面我们提到了如果我们不希望把我们的源码提供出来,但是又想提供这个接口给调用者调用,那么这个该怎么做呢? 我们可以考虑用静态链接库或者动态链接库。 1、链接库 那么什么叫链接库呢?说白了,就是一个二进制文件,是通过特殊方式生成的一个二进制文件,在链接的时候,可以准确地生成可执行文件。 那么静态链接库 阅读全文

posted @ 2021-02-13 20:27 一点sir 阅读(408) 评论(0) 推荐(0)

2021年2月12日

C++程序编译之谜(一)——多文件编译的奇怪现象

摘要: 1、奇怪的现象 在C++多文件编译的时候,很多人都会经常碰见这样的一种情况,在一个cpp文件中调用另一个cpp文件的函数,那么可以直接调用吗?我们来做个试验。 有以下三个文件main.cpp,cal.h,cal.cpp 1 //main.cpp 2 #include <stdio.h> 3 #inc 阅读全文

posted @ 2021-02-12 17:18 一点sir 阅读(181) 评论(0) 推荐(0)

2021年1月25日

tcp和socket有什么关系,与http又有什么联系?用最直白的语言从头到脚为你讲清楚

摘要: 最近项目中需要自己去实现一个http的接口。所以趁这个机会跟大家讲一下http和socket的关系,以及与TCP又有什么联系。 首先大家一定要明确一点,在网络分层架构当中,HTTP协议是属于应用层的,tcp协议是属于传输层的,也就是说它们是一种协议,是通信双方规定的一种规则,没有这种规则,两台主机就 阅读全文

posted @ 2021-01-25 14:42 一点sir 阅读(296) 评论(0) 推荐(0)

2021年1月14日

C++ STL快速入门

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

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

2020年12月30日

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

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

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

2020年12月29日

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

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

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

2020年12月28日

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

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

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

2020年12月25日

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

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

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

2020年12月23日

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

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

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

2020年12月22日

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

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

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

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

导航