自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 学习linux:守护进程

文章目录守护进程进程组会话孤儿进程组编写一个守护进程守护进程的log处理守护进程守护进程一般是在后台执行的进程,长期生存,没有控制终端,没有父进程(即PPID为1)。编写一个守护进程之前,要了解一些基本概念。进程组进程组是一个或者多个进程的集合,一般通过作业结合起来,同一个进程组的各个进程接收来自同一个终端的各种信号。拥有唯一的进程组ID,进程组有一个组长进程,进程组ID等于组长进程ID。进程组中只要还存在一个进程,则这个进程组就一直存在。比如proc1和proc2就为一个进程组:./proc

2022-03-28 17:14:00 304

原创 学习linux:僵尸进程和孤儿进程

文章目录僵尸进程孤儿进程僵尸进程如果一个子进程终止了,其父进程没有获取它的终止信息、释放它所占用了的资源,则这样的一个子进程就称为僵尸进程(或者僵死进程)。一个栗子:// process.cc#include <chrono>#include <thread>#include <iostream>#include <unistd.h> // fork()int main(){ pid_t p_id = fork(); // 子

2022-03-24 16:09:43 965

原创 学习git

目录安装常用命令配置创建分支提交、修改日志远程一般流程安装apt-get install git # ubuntuyum install git # centosbrew install git # macos常用命令配置# 配置个人的电子邮件和用户名git config --global user.email "xxx@e-mail.com"git config --global user.name "name"# 配置文本编辑器git config --global core.

2022-03-22 16:59:32 255

原创 学习C++:学习promise和future的使用

promise和futureC++11使用std::future和std::promise在线程中传递变量实现异步操作。网上找到的示意图:promise成员函数:std::promise::get_futurestd::promise::set_valuestd::promise::set_exceptionstd::promise::set_value_at_thread_exit: 在线程退出时该 promise 对象会自动设置为 ready(注意:该线程已设置promise的值,如果

2022-03-22 15:34:41 1256

原创 学习docker笔记

学习docker笔记macOS配置镜像加速点击Docker Desktop应用图标-> Perferences,在左侧导航菜单选择 Docker Engine,在右侧编辑 json 文件。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ]

2022-03-22 11:56:15 1749

原创 学习C++:多线程编程

目录线程线程thread的function线程创建线程标识线程同步互斥量mutexstd::mutex的使用读写锁条件变量自旋锁屏障线程线程的定义(维基百科):线程(英语:thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线

2022-03-22 09:25:50 288

原创 学习C++:使用C++11实现阻塞队列

otc1. 代码#ifndef __BLK_QUEUE_H__#define __BLK_QUEUE_H__#include <condition_variable>#include <mutex>#include <deque>#include <chrono>namespace DailyRecord{ template <typename _Task> class BlockingQueue { pub

2022-03-21 10:24:28 833

原创 学习C++:使用C++11实现线程池

目录前言线程池组成线程池类的定义线程池类的实现完整代码前言在执行并行任务作业的场景时,需要使用到多个线程,如果每次使用到线程时再创建,不用就销毁,这样频繁的创建和销毁线程对于服务器是一个不小的开销。使用线程池就解决了这个问题,在开始一次性创建多个线程,不用的时候进入睡眠,当有任务的时候,就唤醒一个线程执行任务,线程可以不断的重复利用,只需要在开始的一次性的创建,避免的频繁的创建和销毁。线程池组成工作线程,等待执行分配任务。任务队列,存放待执行的任务。任务接口,用于添加任务管理器,负责线程的创

2022-03-18 18:38:55 1031

原创 学习C++:使用C++11开发一个简单的log库

文章目录前言1.定义2.实现3.使用完整的代码前言日志对于一个项目来说是非常重要的,虽然没有日志不影响程序的运行,但是很多时候程序出bug时,首先是查看日志,然后分析定位问题出在哪里,本文将采用C++实现一个简单的log库。1.定义log文件存放static FILE* log_file_ = nullptr;定义log等级enum LogLevel { DEBUG, INFO, WARN, ERROR, FATAL};log不同等级的信息 st

2022-03-18 17:35:04 899

原创 学习C++:笔记

vscodevscode支持c++11标准点击c/c++的设置选择拓展设置找到C_CPP > Default: Compiler Args添加-std=c++11设置缩进打开设置搜索tabsize,设置想要的缩进如果有不生效的情况,搜索detect Indentation,关掉关闭预览打开设置搜索Enable Preview把Workbench › Editor: Enable Preview选项关掉git下载git项目依赖的子项目g

2022-03-17 15:21:42 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除