kim.zhang

风在前,无惧!


  • 首页

  • 标签42

  • 分类12

  • 归档94

  • 搜索

yield方法.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 1.7k 阅读时长 ≈ 2 分钟

yield方法的使用 Thread类中的静态native方法 让出剩余的时间片,本身进入就绪状态,不释放锁 cpu调度还可能调度到本线程 sleep是在一段时间内进入阻塞状态,cpu不会调度它。而yield是让出执行权,本身还处于就绪状态,cpu还可能立即调度它 yield方法的定义public ...

阅读全文 »

进程与线程.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 706 阅读时长 ≈ 1 分钟

操作系统、进程、线程的关系 操作系统将资源分配给进程,进程将资源分配给线程。但是CPU资源比较特殊,CPU资源是直接分配给线程的。 一个进程中至少会有一个线程,进程不能脱离进程而存在。 main函数启动的时候,会产生JVM进程,JVM进程会产生多条线程。main函数线程称为主线程。还有产生GC回收 ...

阅读全文 »

Unsafe.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 869 阅读时长 ≈ 1 分钟

Unsafe类 AtomicXX类大量采用Unsafe类完成底层操作 位于JDK的rt.jar包中,由BootstrapClassLoader加载的核心类 Unsafe类中的方法几乎都为native方法 单例模式 栗子1:直接通过内存地址为对象的属性赋值public class UnsafeDem ...

阅读全文 »

进程间通信.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 11k 阅读时长 ≈ 10 分钟

线程之间通讯每个线程都是独立运行的个体,线程通讯能让多个线程之间协同工作。 Object类中的wait/notify方法可以实现线程间通讯 wait/notify必须与synchronized一起使用,因为使用这些方法之前必须获得monitor锁 wait释放锁,且只释放当前对象锁,若有多个对象, ...

阅读全文 »

Java内存模型.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 1k 阅读时长 ≈ 1 分钟

三兄弟:JVM内存结构 VS Java内存模型 VS Java对象模型JVM内存结构 共享区域 堆区(所有线程共享) 存储的全部是对象实例(通过new等指令创建的,并会被垃圾回收;数组也是保存在堆上面的,即使是基本类型的数据,也是保存在堆中的。因为在Java中,数组是对象),是内存中最大的一块。 堆 ...

阅读全文 »

ThreadLocal.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 4.8k 阅读时长 ≈ 4 分钟

1. 两大使用场景 每个线程需要一个自己独享的对象(通常是工具类,例如SimpleDateFormat和Random) 使用时重写ThreadLocal的initValue方法 需要保存到ThreadLocal里的对象的生成由我们控制 每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可 ...

阅读全文 »

原子性.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 82 阅读时长 ≈ 1 分钟

Java中的原子性操作有哪些 除了long和double之外的基本类型的赋值操作 所有引用类型的赋值操作,不管是32位机器还是64位机器 Atomic包中所有类的原子操作

阅读全文 »

volatile.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 6.4k 阅读时长 ≈ 6 分钟

volatile保证可见性,不保证原子性 volatile强制线程到共享内存中读取数据,而不从线程工作内存中读取,从而使变量在多个线程中可见 volatile无法保证原子性,volatile属于轻量级的同步,性能比synchronized强很多(不加锁),但是只 保证线程见的可见性,并不能替代syn ...

阅读全文 »

单例模式.md

发表于 2020-08-10 更新于 2021-11-21 分类于 设计模式
本文字数: 2.4k 阅读时长 ≈ 2 分钟

1.饿汉式->静态常量[可用]public class Singleton1 { // 在类加载的时候初始化 private final static Singleton1 instance = new Singleton1(); private Singl ...

阅读全文 »

可见性.md

发表于 2020-08-10 更新于 2021-11-21 分类于 并发
本文字数: 1.5k 阅读时长 ≈ 1 分钟

为什么会有可见性问题 高速缓存的容量比主内存小,但是速度仅次于寄存器,所以在CPU和主内存之间就多了Cache层 线程间的对于共享变量的可见性问题不是直接由多核引起的,而是由多缓存引起的。如果所有个核心都只用一个缓存,那么也就不存在内存可见性问题了。 每个核心都会将自己需要的数据读到独占缓存中,数据 ...

阅读全文 »
1…8910
Kim.Zhang

Kim.Zhang

且行且珍惜
94 日志
12 分类
42 标签
E-Mail Weibo
粵ICP备19091267号 © 2019 – 2022 Kim.Zhang | 629k | 9:32
本站总访问量 4 次 | 有 309 人看我的博客啦 |
博客全站共176.7k字
载入天数...载入时分秒...
0%