![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发
Lemon_MY
这个作者很懒,什么都没留下…
展开
-
Thread线程中的yield()方法和join()方法
yield()方法:当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行,注意是让自己或者其他线程运行,并不是单纯的让给其他线程。yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程...原创 2019-08-31 11:45:16 · 360 阅读 · 0 评论 -
java中Runnable接口和Callable接口的比较
1.Runnable需要在内部使用try-catch处理异常,callable在方法上抛出异常给上一级调用者处理。2.Runnable没有返回值,Callable有返回值,泛型指定返回值类型,call方法类型由泛型指定。3.需要使用线程池来启动Callable实现类线程。例: //1.创建目标对象 Callable test = new CallableImpl(...); //2.创...原创 2019-09-11 12:29:17 · 376 阅读 · 0 评论 -
java中线程的状态及方法
线程方法:注:因为stop()方法本身存在问题,属于线程不安全的方法,不推荐使用该方法停止线程,如果想要停止线程我们应该使用一个外部标识量来进行操作。例:线程状态:调用sleep()方法后的状态: 执行——>阻塞——>就绪调用yield()方法后的状态:执行——>就绪调用wait()方法后的状态:执行——>阻塞注:就绪状态下的线程等待CPU的调度执行,所有...原创 2019-09-11 12:43:30 · 98 阅读 · 0 评论 -
java并发中的CopyOnWriteArrayList和CopyOnWriteArraySet
CopyOnWriteArrayList要点1.实现了List接口2.内部持有一个ReentrantLock lock = new ReentrantLock();3.底层是用volatile transient声明的数组 array4.读写分离,写时复制出一个新的数组,完成插入、修改或者移除操作后将新数组赋值给array增删改查1)增public boolean add(E e)...转载 2019-09-11 17:41:51 · 168 阅读 · 0 评论 -
java多线程中ThreadLocal的相关知识
ThreadLocalThreadLocal会为每一个调用它的线程创建一个变量副本,每个线程使用自己的副本并对其进行操作,不会影响到其他的线程的变量副本的值。方法:set:设置该线程ThreadLocal副本中的值get:获取该线程ThreadLocal副本中的值initialValue:可以在创建ThreadLocal时重写该方法,设置初值。withInitial:设置Thread...原创 2019-09-13 17:47:41 · 133 阅读 · 0 评论 -
java中的可重入锁ReentrantLock
可重入锁概念锁作为并发共享数据保证一致性的工具,大多数内置锁都是可重入的,也就是说,如果某个线程试图获取一个已经由它自己持有的锁时,那么这个请求会立刻成功,并且会将这个锁的计数值加1(计数值初始为0,线程一开始获得锁时将计数值由0置为1),而当线程退出同步代码块时,计数器将会递减,当计数值等于0时,锁释放。如果没有可重入锁的支持,在第二次企图获得锁时将会进入死锁状态。可重入锁核心可重入锁:锁...原创 2019-09-13 20:09:33 · 126 阅读 · 0 评论 -
Lock接口的三个实现类
一.ReentrantLock(可重入锁)即可重入锁。具体可看:https://mp.csdn.net/mdeditor/100807462#例:class Clerk { private int product = 0;//共享数据 private Lock lock = new ReentrantLock();//创建锁对象 private Condition ...原创 2019-09-13 22:08:31 · 2805 阅读 · 1 评论 -
java乐观锁的一种实现CAS
什么是CASCAS:compare and swap,即比较并交换。CAS即java乐观锁的一种实现,CAS依靠的是CPU来实现的(java中的CAS类内部实现属于native方法,由JVM本地实现),属于硬件级别的操作。锁的分类悲观锁(例如互斥同步):synchronized是独占锁即悲观锁,会导致其他所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁而是假设没有冲突而去完...原创 2019-09-13 22:53:24 · 292 阅读 · 0 评论 -
进程间、线程间通信方式
一、进程间的通信方式1.管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2.有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3.信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某...转载 2019-09-18 22:07:04 · 279 阅读 · 0 评论