Linux
文章平均质量分 93
清扰077
热爱ing
展开
-
【Linux】信号量(基于环形队列的生产消费模型)
在基于阻塞队列实现生产者消费者模型时,我们发现,在进行生产和消费时,必须先加锁最后解锁,所以在进行生产和消费时,一定是互斥进行的,所有任务都是顺序进行对临界资源的访问,一个临界资源被当成整体来看待的。但是在有的情况下,一个临界资源可以分成多个资源来使用,此时每个线程可以同时访问被分成的某一个资源,然后可以去同时处理,所以就可以实现并发,只有当多个线程来访问同一份资源时,要通过互斥同步来实现。那我们怎么知道是否有一份资源呢?原创 2023-06-11 15:18:56 · 563 阅读 · 2 评论 -
【Linux】线程详解之线程互斥与同步
我们前边提到了,线程可以访问同一份资源,可能会出现数据异常的问题,所以我们引入了互斥的概念,通过加锁来使同一时间只有一个线程访问临界资源,当加锁之后,可能又会因为某一线程的竞争力过强,一直处于加锁和销毁锁的状态,导致其他线程不能去访问临界资源而导致饥饿问题,所以我们就要引入线程同步的概念,当一个线程在销毁锁之后,不能立马去申请锁,而是要到队列的末尾排序,进入条件变量的等待队列,不会造成其他的线程长时间不能访问临界资源的情况。它允许一个线程等待另一个线程满足特定的条件,然后再继续执行。,所以就会挂起等待。原创 2023-05-28 15:27:08 · 1494 阅读 · 1 评论 -
【Linux】线程详解之线程控制
任何语言,要在Linux上使用多线程,底层必须封装pthread库,其实pthread库是在用户级别的,而库中对应着每个线程的相关属性以及他们的栈,用户级得到的id是在对应某一线程的动态库在虚拟地址空间中的地址,而内核中的TWP才是内核中该线程的id,这个id一定存储在该线程动态库的结构体中,他是线程的一个属性,而线程的动态库被加载到进程地址空间的共享区中。默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_join操作,否则无法释放资源,从而造成系统泄漏。原创 2023-05-21 11:05:31 · 502 阅读 · 0 评论 -
【Linux】线程详解之线程概念
经过前边的学习,我们知道进程拥有一个PCB,在Linux中被称为task_struct,并且有一个进程地址空间,也有一个页表,通过页表指向物理内存,但是从今天开始,对进程的概念可能发生变化,这个我们后边来说,在Linux中,并没有真正的线程,而是使用进程的PCB来模拟线程,也就是说一个线程在创建时,只会去创建一个PCB,而这个PCB也指向主线程的虚拟地址空间,和其他线程一起共享内存的代码和数据。一个线程也被称为一个执行流,这是因为线程是被CPU调度的执行流,而一个进程就是分配系统资源的基本实体。原创 2023-05-20 17:58:05 · 1007 阅读 · 1 评论 -
【Linux】进程信号详解(三)
可重入函数 SIGCHID信号 volatile关键字原创 2023-05-20 14:22:28 · 466 阅读 · 1 评论 -
【Linux】进程信号详解(二)
上篇文章讲解了进程信号的第一部分,主要讲解了信号概念与信号产生的主要内容,这篇文章来讲解信号发送以及信号处理的内容。今天讲解了信号的发送以及信号的处理,希望可以帮到大家。原创 2023-05-13 21:55:49 · 522 阅读 · 2 评论 -
【Linux】进程信号详解(一)信号概念&信号产生
我们的生活中有很多的信号,例如早上的闹钟,过马路时的红绿灯,还有考试考砸回家之后妈妈的脸色等等都是信号。例如早上起床时的闹钟,听到闹钟响了之后,我们就知道了我们接下来的动作,就是要起床去敲代码了,但是在听到闹钟之后,可能我们还有点困,把闹钟关掉了,但是闹钟已经响了这件事在我们的脑子里已经留下了印象,等过一会在一个合适的时间起床。但是这跟我们的进程信号有什么关系呢?原创 2023-05-12 00:06:56 · 425 阅读 · 4 评论 -
【Linux】编辑器vim介绍
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。原创 2023-04-05 14:07:44 · 620 阅读 · 3 评论 -
【Linux】权限详解
在多用户计算机系统的管理中,权限(privilege)是指某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。通常,系统管理员,或者在网络中的网络管理员,对某个特定资源的使用分配给用户不同的权限,系统软件则自动地强制执行这些权限。在现实生活中,权限业并不陌生,例如我可以将我的朋友圈设置为某些人可见,所以只有这些人才有进入我朋友圈的权限。我们要切记目录的权限,只有具有x执行权限才可以进入该目录读取文件,而只有r读权限只能看到文件名,而看不到文件的信息。原创 2023-03-26 11:48:32 · 1024 阅读 · 50 评论 -
【Linux】学会这些基本指令来上手Linux吧
上篇文章介绍了一些常用的指令,这篇文章再来介绍一下Linux必须学会的指令。一.时间相关的指令ate显示date 指定格式显示时间: date +%Y:%m:%ddate 用法:date [OPTION]... [+FORMAT]1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下%H : 小时(00..23)%M : 分钟(00..59)%S : 秒(00..61)%X : 相当于 %H:%M:%S%d : 日 (01..31)原创 2023-03-21 12:36:58 · 1066 阅读 · 23 评论 -
【Linux】基本指令介绍
从今天开始,我们一起来学习Linux的相关知识,今天先来介绍怎么登录Linux,并且介绍一些Linux的基本指令。使用 XShell 远程登录 Linux很多同学的 Linux 启动进入图形化的桌面. 这个东西大家以后就可以忘记了. 以后的工作中没有机会使用图形界面,因为Linux通过命令行就能完成系统管理,包括软件的安装和配置,用户群组的管理和权限设置,系统和服务的启停,文件管理和文件编辑等。. 通过浏览器和SFTP等客户端,还可以在客户端对Linux服务器进行可视化管理。原创 2023-03-18 14:14:08 · 3546 阅读 · 20 评论