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

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 阅读(693) 评论(0) 推荐(0)

2020年12月6日

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

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

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

2020年12月4日

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

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

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

2020年11月15日

socket网络编程知识梳理,让你学会造轮子的能力

摘要: 在前面几篇中,我给大家介绍了socket的相关知识,也给出了详细的代码,从socket的基本介绍,到IO多路复用,以及粘包拆包,最后到心跳包问题。总的来说大概都把socket网络编程中能碰见的问题都讲了,但肯定讲得不够深入,会有一些遗漏,如果有哪些知识点技术点的遗漏,欢迎大家指出,本人虚心接受。 现 阅读全文

posted @ 2020-11-15 10:56 一点sir 阅读(211) 评论(0) 推荐(0)

2020年11月13日

socket网络编程(六)——心跳包问题

摘要: 1、为何需要心跳包 问大家一个问题,如果客户端和服务端长时间没有相互发送数据的话,那么我们怎么来判断这个连接是否存在的呢?有些人可能很自然地说直接send一下不就可以了,确实可以这样进行判断,那么我们发送的时候可以选择发送任何东西,所以一般都是发送一个空包,这个就是心跳包。 跳包之所以叫心跳包是因为 阅读全文

posted @ 2020-11-13 21:49 一点sir 阅读(1301) 评论(0) 推荐(0)

socket网络编程(五)——粘包拆包问题

摘要: 今天和大家讲一下socket网络编程中粘包和拆包的问题。 1、出现粘包拆包的原因 假设一个这样的场景,客户端要利用send()函数发送字符“asd”到服务端,连续发送3次,但是服务端休眠10秒之后再去缓冲池中接收。那么请问10秒之后服务端从缓冲区接收到的信息是“asd”还是“asdasdasd”呢? 阅读全文

posted @ 2020-11-13 21:47 一点sir 阅读(720) 评论(0) 推荐(0)

2020年11月5日

socket网络编程(三)——select多路复用问题

摘要: 1、select诞生的原因 在上文《socket网络编程(二)—— 实现持续发送》我们提到了多客户端的时候,多台客户端发送数据到服务端的话,只能有一台客户端可以正常发送和接受数据,另外一台完全没有反应,那这个问题怎么解决呢?很多人可能第一反应想到利用多线程技术,线程多的话用线程池来维护。的确,多线程 阅读全文

posted @ 2020-11-05 09:49 一点sir 阅读(527) 评论(0) 推荐(0)

2020年11月4日

socket网络编程(四)——epoll多路复用问题

摘要: 1、epoll诞生的原因 问大家一个问题,如果要设计一款有着千万级别并发的系统,你的客户端和服务端的网络通信底层该怎么设计?我在上一篇文章(socket网络编程(三)——select多路复用问题)中有说到用select可以实现IO多路复用,但是select的设计有瓶颈所在,超过十万的并发效率就非常慢 阅读全文

posted @ 2020-11-04 23:46 一点sir 阅读(442) 评论(1) 推荐(0)

2020年10月28日

socket网络编程(二)—— 实现持续发送

摘要: 在《socket网络编程(一)——初识socket》一文里我们提到了,客户端发送了数据了之后,不管服务端还是客户端都close退出了,也就是说只能发送一次数据,这显然不符合实际的用途。那么该如何更改程序呢? 1、持续发送 要想实现持续发送,聪明的你可能想到了用循环,思路完全正确,但是循环多少次呢?实 阅读全文

posted @ 2020-10-28 12:35 一点sir 阅读(597) 评论(1) 推荐(0)

2020年10月24日

socket网络编程(一)——初识socket

摘要: 出现一项技术,首先我们弄懂一下,为什么要出现。那么为什么要出现socket这玩意呢?可以很简单的用一句话来概括: 为了实现两台计算机的通信 1、socket诞生的原因 两台装有操作系统的机子要想实现通信,第一要联网,第二通信双方一定制定某种规则。我们平时最为常见的http请求也是一种通信协议,只不过 阅读全文

posted @ 2020-10-24 20:04 一点sir 阅读(338) 评论(0) 推荐(0)

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

导航