并发编
文章平均质量分 77
Jet_Green
github:https://github.com/jet0605
展开
-
Java并发编程的重要以及难点(个人总结一)
在学习Java并发编程的过程是要注意以下几点: 1.java并发的三个特性 2.volatile、synchronized、lock,重入锁、读写锁的区别。 3.线程间的通信机制 4.线程池 5.阻塞队列 6.ConcurrentHashMap原理以及几个方法运用 7.sleep、wait、Thread.join的区别 这篇博文主要就是围绕这七点进行总结1.java并发的三个特...原创 2018-07-24 17:44:15 · 1498 阅读 · 0 评论 -
利用notify和wait方法实现suspend和resume(附带jstack和jps查看线程运行状态)
suspend和resume的废除查阅java api 可以发现suspend和resume已经被标注为废弃方法。原因其实也不是很复杂,因为suspend在导致线程暂停的同时不会去释放任何资源,直到在对应线程上执行了resume操作,被挂起的线程才能继续,从而其他所有阻塞在相关锁的线程也可以继续执行,但是,如果resume操作意外的在suspend操作前就执行了,那么被挂起的线程很难再去执行。...原创 2018-09-01 14:27:09 · 295 阅读 · 0 评论 -
Java并发模式—Future模式
FutureFuture模式是多线程开发中非常常见的一种设计模式,它的核心思想是异步调用。当我们需要调用一个函数方法时,如果这个函数执行很慢,那么我们就要进行等待。但有时候,我们可能不急着要结果。因此,我们可以让被调者立即返回,让它在后台慢慢处理这个请求。对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获得需要的数据。对于Future模式来说,虽然它无法立即给出你...原创 2018-09-08 11:39:59 · 297 阅读 · 0 评论 -
Java无锁的实现——原子变量
概述对于并发控制来说,锁是一种悲观的策略。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。 而无锁采用的是一种乐观的策略,它会假设对资源的访问是没有冲突的,既然没有冲突,所以不用等待。遇到冲突,无锁采用的策略是一种叫做CAS的技术来鉴别线程冲突。CASCAS全称为compil...原创 2018-09-11 10:09:00 · 408 阅读 · 5 评论 -
线程循环运行demo
线程循环运行demo (用notify-wait实现线程通信的小demo总结)Java在创建线程的时候,如果需要你去让一个线程循环执行10次你会怎么做?for(int i = 0; i < 10; i++){ thread.start();}第一次接触线程的人可能会这么去写,但是在Java中start方法只能执行一次。如果你这么写,将会发生这种错误。...原创 2018-10-15 15:14:13 · 306 阅读 · 0 评论