![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 60
神化我
活到老,码到老
展开
-
Linux常用的基本命令
目录操作命令:ls 列出当前目录(文件夹)下的内容 -a 查看所有文件,包括隐藏文件(Linux下以. 开头的文件) -l 查看文件的详细信息 -S 按文件大小排序 -r 对原来的排序逆序 ...原创 2018-10-31 17:16:21 · 98 阅读 · 0 评论 -
【Linux】给普通用户添加root权限
第一步:从普通用户转换到root用户[lyl@localhost /]$ su密码:[root@localhost /]#第二步:查看/etc/sudoers文件的权限[root@localhost /]# ls -l /etc/sudoers-r--r-----. 1 root root 4000 1月 15 2014 /etc/sudoers如果如上图所示,是只读文...原创 2019-01-30 20:32:52 · 661 阅读 · 0 评论 -
【Linux】Linux编译器-gcc/g++使用
1.背景知识编译过程详解预处理(进行宏替换) 编译(生成汇编) 汇编(生成机器可识别代码) 连接(生成可执行文件或库文件2. gcc如何完成 格式 gcc [选项] 要编译的文件 [选项] [目标文件] 预处理(进行宏替换)预处理功能主要包括宏定义,文件包含,条件编译,去注释等。 预处理指令是以#号开头的代码行。 实例: gcc –E hello.c –o hell...原创 2019-02-27 17:28:49 · 171 阅读 · 0 评论 -
【Linux】find命令的详解
find命令是用来在给定的目录下查找符合给定条件的文件find [OPTIONS] [查找起始路径] [查找条件] [处理动作]一、OPTIONS参数 -P、-L、-H:控制软连接的对待方式,用的不多。不介绍了二、查找路径 就是个目录路径,相对和绝对都可以。三、查找条件1.根据名称查找-name “PATERN”-iname “PATERN”:不区...原创 2019-03-01 09:24:26 · 279 阅读 · 0 评论 -
【Linux】gdp调试和Makefile
Linux调试器-gdb使用1.背景程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项2. 开始使用gdb binFile 退出: ctrl + d 或 quit 调试命令:list(l)行号:显示binFile源代码,接着...原创 2019-03-01 12:21:58 · 1424 阅读 · 0 评论 -
【Linux】冯诺依曼体系结构
当前计算机主要是基于冯诺依曼体系结构设计的,下面就简单分析一下冯诺依曼体系结构的计算机是如何工作的,首先下面的图就是冯诺依曼体系结构图。主要由五大部件组成1.存储器用来存放数据和程序2.运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中3.控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果4.输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式...原创 2019-03-02 10:30:12 · 560 阅读 · 0 评论 -
【Linux】进程控制块PCB--task_struct结构体结构
Linux中task_struct用来控制管理进程,结构如下:struct task_struct { //说明了该进程是否可以执行,还是可中断等信息 volatile long state; //Flage 是进程号,在调用fork()时给出 unsigned long flags; //进程上是否有待处理的信号 int sigpending; //进程...原创 2019-03-02 11:01:07 · 218 阅读 · 0 评论 -
【Linux】yum--软件包管理器
什么是软件包在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装. 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系. yum...原创 2019-02-26 15:53:54 · 1047 阅读 · 0 评论 -
【Linux】vim---编辑器
vim的基本概念vim一共有12种模式:six BASIC modes和six ADDITIONAL modes。我们只需要掌握好三种常用的模式就可以,分别是命令模式(command mode)、插入模式(insert mode)、和底行模式(last mode),各个模式的功能区分如下:正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段...原创 2019-02-27 12:06:04 · 162 阅读 · 0 评论 -
【Linux】线程安全-同步与互斥
线程安全:多个线程执行流对临界资源的不安全争抢操作实现:如何让线程之间安全对临界资源进行操作就是同步与互斥互斥:同一时间临界资源的唯一访问性mutex(互斥量)⼤部分情况,线程使⽤的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程⽆法获得这种变量。 但有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间...原创 2018-12-18 18:45:39 · 123 阅读 · 0 评论 -
【Linux】线程安全的单例模式
单例模式:一种设计模式,一个对象只能初始化一次。分为饿汉模式和懒汉模式。单例中懒汉和饿汉的本质区别在于以下几点:1、饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。2、从实现方式来讲他们最大的区别就是懒汉式是延时加载,他是在需要的时候才创建对象,而饿汉式在虚...原创 2018-12-27 11:28:15 · 178 阅读 · 0 评论 -
【Linux】线程池
首先,线程池是什么?顾名思义,就是把一堆开辟好的线程放在一个池子里统一管理,就是一个线程池。 其次,为什么要用线程池,难道来一个请求给它申请一个线程,请求处理完了释放线程不行么?也行,但是如果创建线程和销毁线程的时间比线程处理请求的时间长,而且请求很多的情况下,我们的CPU资源都浪费在了创建和销毁线程上了,所以这种方法的效率比较低,于是,我们可以将若干已经创建完成的线程放在一起统一管理,如果...原创 2018-12-27 10:47:55 · 105 阅读 · 0 评论 -
将Linux的yum源更换为国内阿里云源
1.备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup作者:也可以用cp命令哦!2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/CentOS 5wget -O /etc/yum.repos.d/CentOS-Base.repo http:...转载 2018-11-23 21:23:36 · 337 阅读 · 0 评论 -
【Linux 】多线程
什么是线程在⼀个程序⾥的⼀个执⾏路线就叫做线程(thread)。更准确的定义是:线程是“⼀个进程内部的控制序列” ⼀切进程⾄少都有⼀个执⾏线程线程和进程进程是资源竞争的基本单位 线程是程序执⾏的最⼩单位 线程共享进程数据,但也拥有⾃⼰的⼀部分数据: >* 线程ID >* ⼀组寄存器 >* 栈 >* errno >* 信号屏蔽字 >* 调度优先级...原创 2018-12-12 16:56:55 · 155 阅读 · 0 评论 -
【Linux】线程控制-线程创建
操作系统并没有提供线程控制的相关接口,大佬分装了一套线程控制接口。线程里我们用库函数,所以说这套接口创建的线程是用户态线程,并且这个用户态线程在操作系统中对应了一个轻量级进程。POSIX线程库与线程有关的函数构成了⼀个完整的系列,绝⼤多数函数的名字都是以“pthread_”打头的 要使⽤这些函数库,要通过引⼊头⽂ 链接这些线程函数库时要使⽤编译器命令的“-lpthread”选项...原创 2018-12-12 18:34:51 · 156 阅读 · 0 评论 -
【Linux】线程控制-线程终止
如果需要只终⽌某个线程⽽不终⽌整个进程,可以有三种⽅法:1. 从线程函数return。这种⽅法对主线程不适⽤,从main函数return相当于调⽤exit。#include <stdio.h>#include<unistd.h>#include<stdlib.h>#include<pthread.h>void* thr_start...原创 2018-12-13 16:20:30 · 160 阅读 · 0 评论 -
【Linux】线程等待与分离
线程等待为什么需要线程等待?已经退出的线程,其空间没有被释放,仍然在进程的地址空间内。 创建新的线程不会复⽤刚才退出线程的地址空间。线程退出也需要保存自己的退出返回值,因此线程也需要等待。只有线程处于joinable状态,这个线程才会被阻塞(joinable线程默认属性)。功能:等待线程结束原型 int pthread_join(pthread_t thread, vo...原创 2018-12-13 17:32:59 · 179 阅读 · 0 评论 -
【Linux】生产者消费者模型
生产者与消费者模型:线程安全的队列(线程与线程之间对临界资源访问的一种编程思想)功能:支持忙闲不均,解耦合,支持并发(线程安全)场所:缓冲区。角色:生产者,消费者关系:三种关系 在生产者与消费者模型之中保证这么三种关系的实现,生产者与生产者:互斥生产者与消费者:同步与互斥消费者与消费者:互斥先来看一个错误的写法:#include <iostream&...原创 2018-12-19 19:45:18 · 158 阅读 · 0 评论 -
【Linux】POSIX信号量
POSIX信号量和SystemV信号量作⽤相同,都是⽤于同步操作,达到⽆冲突的访问共享资源⺫的。 但POSIX可以⽤于线程间同步。一个计数器+等待队列,计数器用来标记当前是否有资源可供操作,等待队列则是没有资源就将pcb加入队列中,等有资源的时候唤醒队列中的线程。信号量的操作就是对计数器的+1/-1操作,当计数器<=0则表示没有资源,这时候陷入等待;如果别人释放了资源,唤醒等待。...原创 2018-12-26 18:41:33 · 136 阅读 · 0 评论 -
【Linux】读写者模型-读写锁
在编写多线程的时候,有⼀种情况是⼗分常⻅的。那就是,有些公共数据修改的机会⽐较少。相⽐较改写,它们读的机会反⽽⾼的多。通常⽽⾔,在读的过程中,往往伴随着查找的操作,中间耗时很⻓。给这种代码段加锁,会极⼤地降低我们程序的效率。那么有没有⼀种⽅法,可以专⻔处理这种多读少写的情况呢? 有,那就是读写锁。读写锁本质上是⼀种⾃旋锁。写互斥,读共享。写的时候别人不能写也不能读,但是大家可以一起读取。加写锁...原创 2018-12-26 20:08:48 · 469 阅读 · 0 评论 -
【Linux】get请求和post请求的“区别”
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻...转载 2019-03-06 15:42:22 · 394 阅读 · 0 评论