Linux
文章平均质量分 77
操作系统和网络
李憨憨_
这个作者很懒,什么都没留下…
展开
-
史上最全的vim快捷键
https://www.cnblogs.com/jiqingwu/archive/2012/06/14/vim_notes.html#id591. 关于Vimvim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)1.1 Vim的几种模式正常模式:可以使用快捷键转载 2021-08-04 17:38:21 · 4225 阅读 · 1 评论 -
线程安全的单例模式
单例模式: 非常典型的一种设计模式;应用场景: 一个类只能实例化一个对象; 一份资源只能被加载一次.单例模式的实现:饿汉方式/懒汉方式 饿汉方式: 资源在程序初始化阶段就完成加载- -以空间换时间; 懒汉方式: 资源在使用的时候再去加载- -延迟加载;饿汉方式:要想实例化多个对象, 共用一份资源, 必须使用static静态成员;在程序初始化阶段, 进入入口函数之前, 资源就完成初始化;要实现一个类只能有一个对象: 可以将构造函数私有化;template<class T.原创 2021-05-28 13:10:07 · 298 阅读 · 18 评论 -
线程应用: 线程池的实现
信号量与条件变量原创 2021-05-28 09:51:51 · 140 阅读 · 5 评论 -
线程的应用--生产者与消费者模型
生产者与消费者模型生产者与消费者模型: 一种非常典型的设计模式. 设计模式: 大佬们针对典型的应用场景设计的解决方案; 应用场景: 有大量数据产生以及进行处理的场景;优势: 解耦合, 支持忙闲不均, 支持并发生产者与消费者模型的实现实现: 2种角色的线程(一个入队数据, 一个出队数据) + 线程安全的队列(阻塞队列) 线程安全: 生产者与生产者: 互斥 消费者与消费者: 互斥 生产者与消费者: 同步 + 互斥线程安全的阻塞队列的实现...原创 2021-05-26 12:17:23 · 110 阅读 · 11 评论 -
多线程(3)--线程安全
线程安全概念:描述的是线程中对临界资源的访问操作是安全的 实现:同步与互斥 互斥:通过对临界资源同一时间的唯一访问保证访问操作安全 同步:通过条件判断使对临界资源访问或获取更加合理...原创 2021-05-24 19:26:08 · 676 阅读 · 16 评论 -
多线程(2)--线程控制
线程控制: 创建,退出,等待,分离;Linux并没有向上提供用于创建线程的接口。因此大佬们对系统调用接口进行封装实现了上层用户态的线程控制接口1.创建代码演示 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<stdlib.h> 4 #include<pthread.h> 5 void *thr_entry(void *arg) 6 { 7 printf(..原创 2021-05-21 14:22:35 · 225 阅读 · 0 评论 -
多线程(1)--线程概念
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-05-20 17:16:45 · 110 阅读 · 5 评论 -
进程信号
进程信号提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录进程信号一、进程信号二、使用步骤1.引入库2.读入数据总结 一、进程信号 概念:信号就是软件中断,信号就是用于向进程通知某个事件的产生,打断进程当前操作,去处理这个事件。示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matp原创 2021-05-19 21:39:30 · 365 阅读 · 2 评论 -
进程间通信(消息队列, 信号量)
消息队列,提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录消息队列,前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供原创 2021-05-13 21:31:35 · 276 阅读 · 3 评论 -
进程间通信(共享内存)
共享内存、消息队列、信号量提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录共享内存、消息队列、信号量前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下原创 2021-05-12 22:58:01 · 2531 阅读 · 7 评论 -
进程间通信( 管道 )
进程间提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录进程间前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一原创 2021-05-09 13:08:16 · 375 阅读 · 8 评论 -
从零开始编写一个minishell
编写一个简单的minishell文章目录编写一个简单的minishell一、shell是什么?二、minishell的实现1.捕捉键盘输入总结一、shell是什么? 从零开始编写一个minishell: 1.shell:命令行解释器 2.捕捉键盘输入:scanf,fgets,gets 3.解析输入信息-命令名称,运行参数 4.创建子进程:fork 让子进程执行对应命令名称的程序(程序替换):execvp 子进程程原创 2021-05-08 13:09:52 · 1010 阅读 · 17 评论 -
文件描述符与重定向
文件描述符与重定向文章目录文件描述符与重定向一、文件描述符1.文件描述符2.重定向原理3.分配规则4.系统调用接口5.文件描述符与文件流指针一、文件描述符1.文件描述符 文件描述符:系统调用IO接口的操作句柄--非负整数文件描述符的本质:内核中进程打开的文件描述信息表中的下标;2.重定向原理代码如下(示例): #include<stdio.h> #include<unistd.h> #include<stdlib.h>原创 2021-05-05 20:23:58 · 580 阅读 · 0 评论 -
学习系统调用接口
学习系统调用接口文章目录学习系统调用接口一、学习系统调用接口1.open2.write3.read4.lseek5.close二、使用步骤1.引入库2.读入数据总结一、学习系统调用接口 1.openpathname:文件路径名; flags:标志位;必选其一:O_RDONLY, O_WRONLY,O_RDWR可选项:O_CREAT:如果文件不存在则创建; O_EXCL:跟O_CREAT一起使用,如果文件已经存在则报错返回;原创 2021-05-05 15:27:06 · 1468 阅读 · 5 评论 -
回顾IO库函数接口
基础IO回顾IO库函数接口学习系统调用IO接口探讨IO操作句柄重定向实现文件系统的了解动态库与静态库的生成与使用文章目录基础IO二、使用步骤1.回顾IO库函数接口2.学习系统调用IO接口2.读入数据总结二、使用步骤1.回顾IO库函数接口回顾IO库函数接口:fopen,fwrite,fread,fclose,fseek–跳转当前读写位置 2.学习系统调用IO接口代码如下(示例):import numpy as npimport pandas as pdimport m原创 2021-04-28 23:04:05 · 201 阅读 · 3 评论 -
进程控制
进程控制文章目录进程控制进程控制1.创建2.进程退出3.进程等待4.进程替换总结进程控制进程控制:创建、退出、等待、替换1.创建创建: pid_t fork();–通过复制父进程创建一个子进程–父子进程代码共享,数据独有 返回值:错误返回-1,对于父进程返回值大于0-子进程的pid,对于子进程返回0写实拷贝技术:创建子进程后,子进程与父进程各自有自己的虚拟地址空间,但是数据映射的实际上是同一块物理内存,等到内存发生改变的时候为子进程重新开辟一块独立的空间,保原创 2021-04-26 15:36:15 · 147 阅读 · 2 评论 -
环境变量、程序地址空间
环境变量、程序地址空间文章目录环境变量、程序地址空间一、环境变量二、程序地址空间一、环境变量环境变量:也是一种变量,是一种保存系统运行环境参数的变量;便于运行环境参数的配置,进程之间的数据通信(子进程的环境变量就是从父进程而来的)命令操作:env-查看环境变量,set-查看所有变量,echo-查看指定变量,export-设置环境变量,unset-删除环境变量典型环境变量: PATH:程序运行的默认搜索路径–在命令行终端中输入命令名称可以直接执行对应名称的命令程序,实际上是因为shall原创 2021-04-25 22:57:48 · 264 阅读 · 3 评论 -
进程概念、进程状态
进程概念Linux系统编程阶段:使用Linux系统提供的接口完成指定功能程序的编写;(进程概念,进程控制,基础IO,进程间通信,进程信号,多线程)提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录进程概念前言一、进程概念二、使用步骤1.引入库2.读入数据总结前言进程概念:冯诺依曼体系结构,操作系统,进程概念,进程状态,环境变量,程序地址空间冯诺依曼体系结构:现代计算机的硬件体系结构(规定了现代计算机应该有哪些硬件单元)硬件单元:输入设备–键盘,输出设备–显示器,存储原创 2021-04-25 20:46:14 · 227 阅读 · 1 评论 -
Linux基本操作
基础指令我们操作Linux是通过命令操作;登录成功之后,命令操作的界面被称之为终端;Linux中使用界面能够完成的操作,命令都能完成;命令名称<空格>[操作选项]<空格>[操作对象]每一个命令的功能可能非常丰富,但不是每一个功能都要直接使用,而是特定的情况下才会使用,因此有了操作选项。ls: 列出当前目录下的内容(查看文件夹里边有什么文件)目录:就是我们常说的文件夹;当前目录:当我们打开一个终端,默认就处于一个目录中,这个目录就是当前登录用户的家目录,操作自己的文原创 2021-04-25 13:32:18 · 128 阅读 · 3 评论