
操作系统
文章平均质量分 90
With Order @!147
奋斗的小王(找工作版)...
展开
-
IO文件操作
因为计算机每次访问硬盘都要消耗一定的时间, 无参的read方法每次访问硬盘只读一个字节的内容, 而有参的read方法每次访问硬盘可以读数组长度个字节的内容。这里讨论的是狭义上的文件, 文件是储在硬盘上的, 和之前的代码中的变量不同, 变量存储在内存中, 从内存中读取数据到CPU上相对来说比硬盘要简单./(本目录的上级目录)来表示路径。IDEA工作目录是当项目所在的目录, 之后代码中出现的相对路径都是对应该工作目录.相比于无参的read方法, 有参的read方法的。的信息, 图片, 音频, 代码等。原创 2023-10-24 23:10:07 · 472 阅读 · 0 评论 -
多线程环境下如何安全的使用线性表, 队列, 哈希表
读频繁, 不经常写入。原创 2023-10-21 21:01:20 · 233 阅读 · 0 评论 -
多线程抽象知识汇总
比较并修改, 将内存中的值和寄存器中的值相比较, 如果一致, 则用另一值来更新内存中的值, 这看似是两步操作, 但实际上CAS是一个原子操作. 既然是原子操作就可以用来代替上锁解决一些并发安全问题, 避免了传统上锁机制带来的性能问题.锁策略是针对多线程和并发编程来说的, 它主要是管理多个线程访问同一共享资源, 即发生锁竞争时该怎么办, 不同的锁策略会影响性能和并发程度, 以下介绍几种锁策略。乐观锁和悲观锁并不是具体的锁, 而是两类锁, 是根据预测的锁竞争激烈程度的结果来定义乐观锁和悲观锁的。原创 2023-10-20 22:18:49 · 178 阅读 · 0 评论 -
线程安全案例 --- 线程池
线程池是对线程进行管理和复用的机制. 在程序中创建一组线程, 当有任务需要执行时, 随机分配任务给空闲线程. 而不单独为一个任务创建线程, 这提高了线程的利用率, 减小了线程使用时创建和销毁的开销.线程池的管理结构, 线程对象状态, 线程队列保存在java虚拟机的堆中, 包括了ThreadPollExecutor中的字段. 而线程执行时的线程状态, 栈信息保存在内存中.原创 2023-10-16 21:46:54 · 129 阅读 · 0 评论 -
线程安全之wait的虚假唤醒 --- 没有调用notify就被唤醒
所谓虚假唤醒,是指线程调用wait方法, 在没有收到明确的通知(notify)的情况下被唤醒。原创 2023-10-14 22:45:36 · 493 阅读 · 0 评论 -
线程安全案例 --- 阻塞队列
当队列中没有元素时执行出队的操作, 会使线程陷入阻塞. 直到另一个线程在队列里增加元素(使得队列不为空).当队列已经满了还要往队列里增加元素时, 也会陷入阻塞利用阻塞队列的特性, 可以实现一个生产者消费者模型实现生产者和消费者间的解耦合削峰填谷, 保证系统稳定性。原创 2023-10-12 21:33:20 · 197 阅读 · 0 评论 -
单例模式中的线程安全问题
在一个类只用来创建一个实例的场景中, 利用java现有语法, 使得一个类只能被用来创建一个实例(对象).原创 2023-10-10 23:31:35 · 574 阅读 · 2 评论 -
线程安全问题 --- 内存可见性问题
所谓内存可见性, 就是当两个线程同时访问一个变量, 其中一个变量发生变化时, 另一个线程能够及时获取该变量的最新值,注意区分这里的内存可见性和之前的脏读, 不可重复读那么内存安全性问题便是当两个线程同时访问一个变量, 其中一个变量发生变化时, 另一个线程无法获取该变量最新值, 这个问题要使用volatile来解决。原创 2023-10-09 23:14:40 · 468 阅读 · 0 评论 -
线程安全问题 --- 死锁
所谓死锁就是线程进入了阻塞状态且无法由阻塞状态转为可执行状态。原创 2023-10-09 13:45:48 · 159 阅读 · 0 评论 -
初始多线程
为了解决并发编程问题, 引入了进程, 但是由于进程在创建, 销毁, 调度时的开销太大(主要是资源分配和释放), 所以又引进了线程线程省下了资源分配和释放, 多个线程共用进程中的同一资源(意味着多个线程只需进行一次资源分配, 资源分配以进程为单位, 一个进程包含多个线程一个进程至少包含一个线程, 可以包含多个线程线程是系统调度执行的基本单位, 进程是系统资源分配的基本单位, 进程中的第一个线程在启动时是和进程一起启动的, 所以第一个线程在启动时需要申请资源, 但是之后的线程不需要。原创 2023-10-07 10:03:39 · 109 阅读 · 0 评论 -
操作系统与进程简介
操作系统是一个管理软件, 对下管理硬件设备, 对上要给计算机软件运行提供良好环境硬件设备: cpu(控制器, 计算器), 内存, 输入输出设备等驱动程序: 硬件厂商除了提供硬件, 还会提供一个驱动程序, 只有给计算机安装了驱动程序, 计算机才能正确识别该硬件系统内核: 操作系统, 向下管理硬件设备,向上为软件运行提供环境系统调用: 操作系统为应用程序提供的api接口, 程序想要操作硬件设备, 首先通过系统调用将程序指令告诉操作系统内核, 操作系统内核通过驱动程序去操作硬件应用程序: app。原创 2023-09-23 16:15:32 · 69 阅读 · 0 评论