正在加载中,请稍后

随笔分类 -  多线程并发

摘要:Spring中@Async用法总结 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@As 阅读全文
posted @ 2022-03-18 16:41 wode虎纹猫 阅读(193) 评论(0) 推荐(0) 编辑
摘要:Semaphore 信号量介绍 1、Semaphore 是什么 Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。 可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从 阅读全文
posted @ 2021-07-01 15:25 wode虎纹猫 阅读(104) 评论(0) 推荐(0) 编辑
摘要:synchronized锁升级过程 其实“锁”本身就是个对象,synchronized这个关键字不是锁,而是在加上synchronized时,仅仅是相当于“加锁”这个操作。 synchronized 是通过锁对象来实现的。因此了解一个对象的布局,对我们理解锁的实现及升级是很有帮助的。 对象布局 对象 阅读全文
posted @ 2021-06-10 16:06 wode虎纹猫 阅读(776) 评论(0) 推荐(0) 编辑
摘要:synchronized 和 ReentrantLock (重入锁) 区别是什么 相似: 它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待 区别: synchronized是和if、else、for、whi 阅读全文
posted @ 2021-05-28 15:43 wode虎纹猫 阅读(301) 评论(0) 推荐(0) 编辑
摘要:锁的可重入性 如果当前线程已经获得了某个监视器对象所持有的锁,那么该线程在该方法中调用另外一个同步方法也同样持有该锁。 比如: public synchrnozied void test() { xxxxxx; test2(); } public synchronized void test2() 阅读全文
posted @ 2021-05-10 15:11 wode虎纹猫 阅读(644) 评论(0) 推荐(1) 编辑
摘要:synchronized 关键字 其实“锁”本身就是个对象,synchronized这个关键字不是锁,而是在加上synchronized时,仅仅是相当于“加锁”这个操作。 jdk1.6之前 synchronized可以用在修饰方法和代码块,保证线程安全,修饰静态方法时,作用于Class的所有实例对象 阅读全文
posted @ 2021-05-08 11:19 wode虎纹猫 阅读(90) 评论(0) 推荐(0) 编辑
摘要:线程和线程池 进程和线程: 进程:程序调度和内存资源分配的基本单位。 线程:cup调度和资源分派的基本单位。 一个程序至少有一个进程,一个进程至少有一个线程。一个进程中可有多个线程,多个线程能够并发执行任务。 并发和并行: Erlang 之父 Joe Armstrong 用一张图解释了并发与并行的区 阅读全文
posted @ 2021-05-08 11:16 wode虎纹猫 阅读(88) 评论(0) 推荐(0) 编辑
摘要:CAS操作 Compare And Swap先比较,再交换 CAS中有三个值:内存中的旧值V,期望的值A,最终的值B,一个CAS操作会先比较内存中的旧值和期望值是否相等,如果相等,才会把内存中的值换成最终的值。如果内存中的值和期望的值不相等,说明其他线程已经对内存中的值发生改变。这时就不会操作成功。 阅读全文
posted @ 2021-04-29 14:17 wode虎纹猫 阅读(139) 评论(0) 推荐(0) 编辑

Live2D
欢迎阅读『多线程并发』
     
点击右上角即可分享
微信分享提示