摘要: 在进行本节内容前,首先介绍几个基本概念: 非线程安全:多个线程对同一个对象中的实例变量进行并发访问,导致读取到的数据是被更改过的。 线程安全:指获得实例变量的值是经过同步处理的,不会出现脏读的现象。 并发编程的三要素: 原子性:指的是一个或多个操作要么全部执行成功要么全部执行失败。 可见性:指的是一 阅读全文
posted @ 2021-08-09 23:44 明羽1 阅读(61) 评论(0) 推荐(0)
摘要: 1. 饿汉模式 也称立即加载模式,指使用类的时候已经将对象创建完毕。 public class hungerSingleton { private static hungerSingleton hungerSingleton = new hungerSingleton(); private hung 阅读全文
posted @ 2021-08-09 23:33 明羽1 阅读(37) 评论(0) 推荐(0)
摘要: 1. ReentrantLock 使用ReentrantLock可以实现同步; 使用ReentrantLock结合Condition类可以实现“选择性通知”,这个功能是Condition类默认提供的。Condition对象的作用是控制并处理线程的状态,它可以使线程呈wait状态,也可以让线程继续运行 阅读全文
posted @ 2021-08-09 23:33 明羽1 阅读(70) 评论(0) 推荐(0)
摘要: 1.wait/notify机制原理 持有相同锁的线程才可以实现wait/notify机制。 wait()方法是Object类的方法,它的作用是使当前执行wait()方法的线程等待,在wait()所在的代码行处暂停执行,并释放锁,直到接到通知或被中断为止,在调用wait()之前,线程必须获得该对象的对 阅读全文
posted @ 2021-08-09 23:33 明羽1 阅读(44) 评论(0) 推荐(0)
摘要: 一、Linux模型 Linux内核作为操作系统内核,向下承接最底层的硬件驱动,向上提供应用层的接口实现,适用于各类软硬件结合系统。 Linux内核主要分为以下五大模块:进程管理、内存管理、文件系统、设备驱动以及网络模块。 二、进程管理 在Linux中,父进程通过fork自己的地址空间创建一个新的子进 阅读全文
posted @ 2021-05-17 19:29 明羽1 阅读(245) 评论(0) 推荐(0)
摘要: 1.上下文切换 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。 因此任务从保存到再加载的过程就是一次上下文切换。 2.减少上下文切换的方法 包括无锁并发编程、CAS算法、使 阅读全文
posted @ 2021-04-23 21:25 明羽1 阅读(241) 评论(0) 推荐(0)