并发编程那些年
文章平均质量分 78
带你重新认识并发编程
我叫果冻
一名行走的代码狗
展开
-
第三章 java内存模型与并发三大特性
JMM(java内存模型Java Memory Model)本身是一种抽象的概念,描述的是一组规则或规范。通过这组规范定义了程序中各个变量的访问方式。Java本身的运行是基于虚拟机的,在虚拟机的规范中,Java定义了一种内存模型,来屏蔽掉硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。Java 线程之间的通信由 Java 内存模型控制的,下图就是java内存模型的抽象结构。原创 2023-12-31 23:00:03 · 592 阅读 · 0 评论 -
java并发编程与案例总结
本文主要介绍了,并发编程中问题,java并发机制的底层实现,内存模型,基础,锁,框架,原子类,并发工具类,线程池以及实战 本文中名词的定义借鉴了并发编程的艺术这本书以及个人工作多年工作经验对并发编程认识与总结原创 2022-06-07 01:45:41 · 371 阅读 · 0 评论 -
第二章 java并发机制的底层实现原理
monitorenter 指令是在编译后插入到同步代码块的开始位置,而monitorexit是插入到方法结束和异常处,jvm要保证每个monitorenter必须有对应的monitorexit与之配对,任何对象都有一个monitor关联,当且一个monitor被持有后,它将处于锁定状态,线程执行到monitorenter指令是,将会尝试获取对象锁对应monitor的所有权,即尝试获取锁。如果遇到线程的竞争,偏向锁就会释放,变为轻量级锁,当出现有自旋,长时间获取不到,就变为重量级锁。原创 2023-12-29 11:18:56 · 873 阅读 · 0 评论 -
第一章 并发编程挑战
并发的目的是为了程序运行的更快,并不是启动更多的线程就能让程序最大限度地并发执行,但是做好并发编程,需要面临一下问题需要去解决,例如:上下文切换、死锁、资源限制问题。避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。使用最少得线程:比如任务很少,但是还是创建很多线程来处理。无锁并发编程:意思就是让不同的线程处理不同端的数据。尝试使用定时锁,使用lock.tryLock。CAS算法:根据进行数据比对,进行更新。协程:在单线程实现多任务的调度。避免一个线程同时获取多个锁。资源循环利用(线程池)原创 2023-12-25 15:10:04 · 406 阅读 · 0 评论