首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
java并发编程
Lovely小猫
创建于2022-11-25
订阅专栏
java并发编程
等 2 人订阅
共34篇文章
创建于2022-11-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
并发编程(十四)Synchronized锁升级-偏向锁(中)
为了让线程获得锁的代价更低而引入了偏向锁。当一个线程访问同步块并获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程ID,以后该线程在进入和退出同步块时不需要进行CAS操作来加锁和解锁,简单判断即可
并发编程(十三)Synchronized锁升级-偏向锁(上)
1.偏向锁使用的前提: 至少JDK1.6 版本且开启了偏向锁配置,被加锁的对象,没有真正、或者隐式的调用父类 Object 里边的hashcode方法
并发编程(十二)java Mark Word讲解
对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)、对齐填充
并发编程(十一)Synchronized 的特性
Synchronized 的特性:有序性,可见性,原子性,可重入性。下面分别来介绍这些特性,这些只是简单介绍,后续将会详细介绍。
并发编程(十)Synchronize使用方式
synchronize作用范围在三个地方是:**普通方法;静态方法;同步代码块。每一个地方的锁对象不同,但是具体又是如何体现的呢?
并发编程(九)java线程间的通信方式
java线程间的通信方式: 1. volitate 、synchronize、lock。(都保证可见性) 2. wait、notify、await() 、 signal 3. 管道输入、输出流 等等
并发编程(八)java中的join方法深入理解
对于java中的join方法同样有三个问题:1.是否释放锁?2.是否对中断敏感 ?3.是否释放CPU?
并发编程(七)java中的sleep方法 wait方法
今天讲java并发中的几个方法,主要回答这些问题:1.是否释放锁?2.是否对中断敏感 ?3.是否释放CPU?
并发编程(六)java Thread.start()源码解读
线程对象在初始化完成之后,调用start()方法就可以启动这个线程。线程start()方法的含义是:当前线程(即parent线程)同步告知Java虚拟机,只要线程规划器空闲应立即启动调用start()
并发编程(五)java Thread.init()源码解读
一个新构造的线程对象是由其parent线程来进行空间分配的,而child线程继承了parent是否为Daemon、优先级和加载资源的contextClassLoader以及可继承ThreadLocal
并发编程(四)java线程状态转换
在Thread源码中有有一个内部枚举类State,其中标注了6中状态,网上也有好多说7种状态。其实是运行状态中细分了运行中和就绪状态(通过yield()方法调用,也可以是没有抢到cpu时间片)
并发编程(三)java线程状态log日志解读 - Stack log 解读
我们可能在平时会用到jstack命令,进行线程状态查看,下面简单解读一下jstack中日志。其中有示例代码进行演示。
并发编程(二)java线程优先级和守护线程
本文介绍了java的线程的优先级和守护线程,在Java线程中,通过一个整型成员变量priority来控制优先级,优先级的范围从1~10。Java虚拟机中不存在非守护线程的时候,Java虚拟机会退出。
并发编程(一)java运行总共有几条线程?
在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。 当前的main函数就是一个 JVM 进程。 打印出来的6条线程信息就是进程中的多条线程。