![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 86
小乔不掉发
爱编程 爱生活
展开
-
面试了这么多场,“ 进程间的通信 ” 真是从不缺席,小伙伴们赶快重视起来!!
进程间通信:1、管道:2、消息队列:3、共享内存:4、信号量:5、信号:6、Socket(套接字):每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为 进程间通信。1、管道:匿名管道:管道是单向的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道。只能用于父子进程或者兄弟进程之间(具有亲缘关系的原创 2021-08-03 14:29:02 · 266 阅读 · 1 评论 -
基于 AQS 的并发编程: CountDownLatch 和 semaphore
1、CountDownLatch1、谈谈 CountDownLatch:CountDownLatch 是 JDK 提供的一个同步工具,它可以让一个或多个线程等待,一直等到其他线程中执行完成一组操作2、CountDownLatch有哪些常用的方法?有 countDown 方法和 await 方法,CountDownLatch在初始化时,需要指定用给定一个整数作为计数器。当调用 countDown 方法时,计数器会被减1;当调用 await 方法时,如果计数器大于0时,线程会被阻塞,一直原创 2021-04-25 22:21:35 · 125 阅读 · 0 评论 -
HashMap 有的,我也有,HashMap做不到的,我能,我就是 ConcurrentHashMap
概念:高性能 并发的线程安全的 Map,基于安全失败的迭代器特性: 读操作(get),是没有加锁,基于 volatile 保证线程安全 - - - > 读读、读写并发提升效率:jdk1.7 和 1.8 都满足分段加锁(1.7是一段一段多个节点加锁,1.8是一个节点加锁)1、jdk 1.7:1、底层数据结构:数组 + 链表(HashEntry 为链表的结点)2、采取了 segment 分段锁技术,在多线程并发更新操作时,对同一个 segmen 进行同步加锁,保证数据的安全。这样就可原创 2021-04-25 09:29:05 · 142 阅读 · 0 评论 -
当面试中问到关于多线程安全问题时,你还不知道怎么回答嘛?快点进来,我带你多维度、深层次来解决这个问题
保证线程安全:1、synchronized:(1)作用:(2)语法 / 使用:(3)原理 / 底层实现:(4)JVM 对 synchronized 的优化:2、Lock体系:(1)为什么会有Lock体系(是为了死锁的解决)(2)简介:(3)AQS(4)Reentrantlock:可重入锁,实现Lock(5)ReentrantReadWriteLock:读写锁1、synchronized:synchronized 关键字:线程安全用的,同步关键字(1)作用:对象头加锁,同一个对象加锁的线程 同步互斥原创 2021-04-24 16:53:00 · 322 阅读 · 1 评论 -
这年头,连“锁”都开始有情绪了。。乐观锁 VS 悲观锁(CAS)
使用场景: 提高效率(多个任务且任务量、多个任务且会阻塞)线程状态:谈Java线程状态(熟悉掌握线程状态转化图)线程安全原因:多个线程对共享变量的操作(代码层面)原子性、可见性、有序性(底层原因 )解决方式:共享变量加锁(synchronized加锁 、 Lock体系)多线程提高效率 - - 保证安全的前提下,尽可能的提高效率(方式:加锁细粒度化)2、多线程高阶知识:...原创 2021-04-23 22:50:43 · 145 阅读 · 0 评论 -
Linux 常用指令大全
我是目录:1、指令格式:2、Windows 和 Linux 通用内容:3、路径的命令:4、文件夹 / 文件的指令:1、指令格式:输入指令/命令/程序,可以跟参数,参数值指令 -参数1[参数值] -参数2[参数值]([ ]内容可有可无)可以多个参数,没有参数值时,可以合并多个参数:-参数1参数22、Windows 和 Linux 通用内容:路径 : Linux根路径是 /,Linux区分大小写,路径间隔敏感(只能使用 /,不能使用 \)绝对路径:以 / 开头,都是绝对路径相对路径:非 /原创 2021-02-25 11:24:34 · 305 阅读 · 0 评论 -
谈谈你对 多线程 的理解........
目录1、认识线程:2、Thread类及常见方法:1、认识线程:概念:进程:系统 分配资源 的最小单位线程:系统 调度 的最小单位一个进程内的线程之间时可以共享资源的。每个进程至少有一个线程的存在(即主线程)线程创建: //方式1: Runnable r = new Runnable() { @Override //线程运行态时,执行 public void run() {原创 2021-01-18 12:03:29 · 1453 阅读 · 0 评论 -
操作系统
1、冯诺依曼体系结构:我们常见的计算机(笔记本),不常见的计算机(服务器)大部分都遵循冯诺依曼体系:输入设备:接收某个动作,转变成执行指令(从某设备传输数据到内存),如 鼠标、键盘输出设备:数据输出到某个设备,如 显示器存储器: 这里的存储器指的是 内存(所有设备都只能和内存打交道)CPU:执行指令的设备(只能是内存的指令),可以执行 运算操作、数据操作、逻辑操作(1)控制器:(相当于老板)(2)运算器:(相当于员工)数据的读写效率:2、操作系统(Operator System):原创 2021-01-10 17:22:30 · 167 阅读 · 0 评论