![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
文章平均质量分 80
start_lie
这个作者很懒,什么都没留下…
展开
-
ReentrantReadWriteLock读写锁的使用
首先 先了解读写锁的概念读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁.说的简单点就是 :读读不互斥-------读写互斥-------写写互斥都知道上原创 2018-01-08 14:10:29 · 638 阅读 · 0 评论 -
Executors工具类 4种获取线程池服务对象的方法
java中目前我只了解4 种获得多线程的方法 :1.继承Thread类 ,重写run方法2.new Thread(实现Runnable接口)3.FutureTask ft = new FutureTask(new MyThread());new Thread(ft).start(); MyThread自己写的 实现了CallableFutur原创 2018-01-08 20:59:30 · 3348 阅读 · 0 评论 -
CountDownLatch,Semaphore,CyclicBarrier多线程工具类的使用
CyclicBarriernew CyclicBarrier(int,Runable); //构造器先看代码CyclicBarrier cb = new CyclicBarrier(7, () -> System.out.println("**************召唤神龙")); CyclicBarrier 的字面意思是可循环(Cyclic)使用的屏障(Barri原创 2018-01-08 21:35:47 · 192 阅读 · 0 评论 -
浅谈JVM(一) ClassLoader的双亲委派和沙箱机制
JVM(Java Virtual Machine) java虚拟机 JVM运行在操作系统之上,与计算机硬件没有交互JVM整体运行流程需要用到的资源 可以说分以下标红的5部分组成class files 被java命令运行 将类信息通过类装载器(ClassLoader)加载并初始化生成 Class模版放入运行时数据区(Runtime Data Area)运行时数据区包括 5部分 :原创 2018-01-09 19:05:19 · 6872 阅读 · 1 评论