0%

如何判断一个系统是否是高并发

高并发是相对的,不同系统的高并发界定也不同,但是通常在实际情况下,QPS在一定范围内时被称为高并发。一般来说,当系统的QPS达到几百或几千时,就可以被认为是高并发了。

当然,QPS高低的标准还受多种因素的影响,例如服务器处理能力、请求响应时间、服务器内存及磁盘配置等等。对于一些对时效性要求较高的系统,即使QPS比较低,也有可能被认为是高并发的。因此,高并发应该根据具体的应用来界定。

Read more »

线程

线程概述

  • 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)
Read more »

进程概述

程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程:

  • 二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。(ELF可执行连接格式)
  • 机器语言指令:对程序算法进行编码。
  • 程序入口地址:标识程序开始执行时的起始指令位置。
Read more »

库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些直接拿来用的变量、函数或类。库不能单独运行。

  • 静态库:在程序链接阶段被复制到程序中
  • 动态库:在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用
Read more »

概念解释

  • 重载:是指同一可访问区内被声明几个具有不同参数列(参数的类型、个数、顺序)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。
Read more »

C++11中智能指针包括三种:共享指针(shared_ptr),独占指针(unique_ptr),弱指针(weak_ptr)。

智能指针通过计数原理来实现,但在使用过程中可能会出现循环引用的问题,我们可以通过weak_ptr去解决。

Read more »

C++内存分区

  • 栈:存放函数的局部变量、函数参数、返回地址等,由编译器自动分配
  • 堆:动态申请的内存空间,就是由malloc分配的内存块,由程序员控制它的分配和释放,如果程序结束还没有释放,操作系统会自动回收
Read more »