![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程专题
文章平均质量分 93
鲁子敬。
每一个脱离细节的架构师都是耍流氓
展开
-
线程基本状态概要
package com.nipeixing.demo.thread;/**介绍线程的6种基本状态1、New : 尚未启动的线程的状态2、Runnable : 可运行的线程的状态,等待cpu的调度3、Blocked : 线程阻塞等待的状态,例如:Synchronized同步代码块或者方法被阻塞4、Waiting : 等待线程的线程状态。不带超时的的方式:【Obj...原创 2019-09-15 00:14:52 · 100 阅读 · 0 评论 -
常见的线程通信方式
package com.nipeixing.demo.thread;import java.util.concurrent.locks.LockSupport;/**线程通信三种方式: 【suspend/resume、wait/notify、park/unpark】suspend/resume:java废弃的方法【原因:加同步锁容易造成死锁;先后顺序弄反容易导致线程无线挂起】...原创 2019-09-15 00:16:41 · 265 阅读 · 0 评论 -
一看就懂的JAVA线程池
package com.nipeixing.demo.thread;import java.util.List;import java.util.concurrent.*;/**线程池API ->接口定义和实现类:【接口】:Executor : 最上层的接口,定义了执行任务的方法execute【接口】:ExecutorService : 继承了Executor接口,拓...原创 2019-09-15 00:18:42 · 100 阅读 · 0 评论 -
CAS机制的原理解读
一. CAS是什么?1、CAS的全拼是:compare and swap,中文意思是:比较和交换。CAS包含3个操作数值【内存位置(也叫偏移量)V、预期值A、新值B】,根据偏移量找到预期值做对比,如果值相等,那么用新值覆盖;如果和预期值不相等,那么该线程发生自选(实质是循环获取对比);2、CAS属于乐观锁【乐观锁】:用某种方式不加锁来处理资源,比如通过给记录加version来获取数据,性能较...原创 2019-09-17 21:22:54 · 568 阅读 · 0 评论 -
JAVA锁
一. JAVA中锁的概念1、自旋锁:2、乐观锁:3、悲观锁:4、独享锁:5:共享锁:(限流)原创 2019-09-21 09:56:19 · 1129 阅读 · 1 评论 -
HashMap与ConcurrentHashMap
JDK1.7版本的HashMap1、HashMap是一个集合类,主要是帮我们做数据存储,那么他是如何存储的呢?HashMap是用一个table来做存储,这个table只是一个基于K,V的Entry数组。2、hashmap的put()方法解析调用put方法的时候,首先对key值进行hash算法,int hash = hash(key); index=hash%length。通过hash取...原创 2019-10-01 16:09:08 · 132 阅读 · 0 评论 -
并发容器类List、set、queue
List1、List的基础问题:ArrayList: 基于数组,因为可以根据数组下标可以直接锁定元素,所以查询效率高;添加和删除效率较低,因为在进行添加和删除的时候,需要进行元素移位,消耗内存;初始长度是10;发生扩容时 初始长度*1.5。LinkedList: 基于链表,因为锁定元素必须是遍历链表全部元素,所以查询效率低;进行删除和添加的时候,由于LinkedList存储元素的数据结...原创 2019-10-08 10:21:03 · 366 阅读 · 0 评论 -
JAVA实用工具
一、CountDownLatch1、看代码代码示例1:package com.nipx.demo.CAS;import java.util.concurrent.CountDownLatch;import java.util.concurrent.atomic.AtomicLong;public class CountDownLatch_demo { public sta...原创 2019-10-09 09:39:14 · 233 阅读 · 0 评论