- 博客(53)
- 收藏
- 关注
原创 C++11之智能指针(RAII)
C++11智能指针介绍(auto_ptr, unique_ptr, shared_ptr, weak_ptr)
2022-08-09 22:43:40 883 1
原创 Linux之网络学习第四部分:模拟计算器+序列化与反序列化
本章作用主要为承上启下,一方面训练tcp使用的流程接口,另一方面为下一章介绍http做铺垫
2022-07-14 14:09:16 227
原创 Linux之网络学习第三部分:网络套接字编程之TCP协议
本节为介绍TCP的接口,一共有四种版本的TCP通信分别为:1.单进程版,没人使用,与UDP不同,TCP单进程只能与一个人进行通信!!2.多进程版2.0父子进程与2.1版本父子孙进程3.普通多线程版4.单例模式线程池的多线程版本代码里面的注释很重要,要仔细看!!!对于服务端需要以下函数......
2022-07-12 08:57:53 301
原创 Linux之网络学习第二部分:网络套接字编程之UDP协议
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。总结:套接字相当于我们之间通信的桥梁,我们接收与发送的所有信息都要通过套接字。.........
2022-07-09 20:56:56 709
原创 Linux之多线程第六部分:单例模式
单例模式概念单例模式是一种 "经典的, 常用的, 常考的 " 设计模式。设计模式就是针对不同的情况有与之对应的方法,通俗易懂。单例模式特点某些类, 只应该具有一个对象(实例), 就称之为单例。在很多服务器开发场景中, 经常需要让服务器加载很多的数据 (上百G) 到内存中. 此时往往要用一个单例的类来管理这些数据。什么情况下需要单例模式呢?一般而言,语义上只需要一个,且该对象内部存在大量空间,保存了大量的数据,如果允许拷贝的话,内存中会存在冗余数据。**总结来说就是:只创建一次,加载一次。**
2022-05-20 16:18:50 348
原创 Linux之多线程第五部分:线程池
线程池概念一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。*线程池的应用场景:1.需要大量的线程来完成任务,且完成任务的时间比较短。 WEB服务器完成网页请求这样的任务,使用线程池技术是非常合适的。因为单个任务小,而任务数量巨大,你可
2022-05-20 12:59:44 135
原创 Linux之多线程第三部分:线程的互斥与同步(可以直接看总结,通俗易懂)
本篇文章涉及到前两篇的知识点,需要的话可以了解下,有什么问题欢迎评论区留言我们互相学习,共同进步。Linux之多线程第一部分:多线程的概念Linux之多线程第二部分:线程的控制为什么要互斥与同步在介绍互斥之前,先介绍一下为什么要互斥,互斥的作用是什么1.临界资源:凡是被线程共享访问的资源就是临界资源。比如我们多线程,多进程打印数据到显示器,这里的显示器被多个线程都访问了,因此显示器就是临界资源,再比如说全局变量等。2.临界区:我的代码中访问临界资源的代码。并不是我所有的代码都进行访问临界资源的,
2022-05-18 15:52:00 481
原创 Linux之多线程第二部分:线程的控制
看这篇前强烈推荐先看一下第一部分Linux之多线程第一部分:多线程的概念这篇我们主要介绍创建并操作线程的函数,有任何问题欢迎评论区留言,我们互相学习,共同进步!创建线程函数 pthread_create获取当前线程ID函数pthread_self线程的创建 1 #include<stdio.h>
2022-05-12 10:59:47 139
原创 Linux线程ID与内核LWP的关系
先给出图,然后我将根据图来讲解二者的关系:线程ID在使用线程前,我们需要链接线程的pthread第三方库,在Linux中,第三方库被加载到PCB进程中的虚拟地址空间中的栈区与堆区之间的共享区。我们所创建线程的控制块即维护线程的内容都存在pthread第三方库中,当我们创建线程时候大致的流程如下:1.磁盘将pthread库加载到物理内存中2.通过页表映射(不是拷贝!!!)到进程地址空间中的共享区,因为是映射,所以每个进程共用一份pthread库。3.pthread库中存在很多线程的控制块stru
2022-05-08 23:04:27 580
原创 Linux之多线程第一部分:多线程的概念
什么是线程在linux当中线程可以认为是进程的一部分,他与进程共享一份地址空间,而不是新建一个线程就新建一份地址空间(windos操作系统是这样的)。然而,本质上linux是没有线程的概念的,因为CPU在对每个线程处理时,都会把它当作进程来处理,只不过线程在CPU眼里是更轻量级的进程,所以线程只是我们用户理解,在操作系统中他都认为这些是进程,只不过线程可以看作为比进程小一点的进程,下面将画图说明线程在linux中与进程的关系:上图说明了在Linux系统中线程与进程的关系:1.线程与进程共用一份地址空
2022-05-08 15:24:34 520
原创 linux操作系统之进程信号(很详细)
信号的概念生活中遇到红绿灯,我们知道红灯停绿灯行;跑到比赛的枪响了我们知道要开始跑了,这些在我们生活中存在的各种信号在操作系统当中也会有类似的机制,接下来我将分成三个大块来介绍进程间的信号。第一块:信号产生前机器是人生产的,所以就会让机器实现和人类相同的处理问题的机制,比如我们为什么遇到了红灯就知道要停下来,这是因为我们一开始是通过接受教育获得知识才懂得了红绿灯的规则,(OS)操作系统同样,一开始会由程序员在为OS编写好了遇到各种信号的处理时机与处理方法,是所以在我们使用当中遇到各种问题操作系统会接收
2022-04-29 21:37:06 2335 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人