`
wx1568908808
  • 浏览: 32454 次
文章分类
社区版块
存档分类
最新评论
文章列表
springboot本身集成了logback,所以无需引入依赖; 在resources下建立logback.xml文件,内容如下 <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> ...
cat :显示切割数据 -f:选择显示切割列; -s:比现实没有分割的行 -d:自定义分隔符 cut -d ‘  ’-f 1,3  a.txt : 以空格为分隔符显示第一列和第三列;这种情况不能分隔的行也会显示出来,如果不需要可以加一个-s,如下所示: cut  -d ' ' -s -f 1,3  a.txt sort :文件数据排序 -n:按数值排序 -r:降序; -t:自定义分隔符; -k : 选择拍序列; -f :忽略大小写; - u:合并相同行;  sort ...
  该图代表jvm中的新生代,老年代,持久代;  新生代和老年代主要指堆区(管理对象),持久代主要指方法区(因为方法区里是类信息,静态变量,常量等需要“持久”的信息);我们 ...
和CountDownLatch有点类似,CyclicBarrier也是类似一个栅栏操作----等待子线程全部执行完再执行下个动作;但是CyclicBarrier能重复使用,CountDownLatch只能用一次, public class CyclicBarrierDemo { public static class Soldier implements Runnable{ private String soldier; private final ...
在并发编程中我们最常用到的两块:一种是基于CAS 机制实现的Atomic类操作,一种是基于AQS实现的同步类实现如常用的ReentrantLock/Semaphore/CountDownLatch等; CAS: CAS是英文单词Compare and Swap的缩写,翻译过来就是比较并替换。 CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。 更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。 从思想 ...
CountDownLatch允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行;CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。 public class CountDownLatchDemo { static CountDownLatch countDownLatch=new CountDow ...
ReentrantReadWriteLock是Lock的另一种实现方式,我们知道ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。在实际应用中,大部分情况下对共享数据(如缓存)的访问都是读操作远多于写操作,这时ReentrantReadWriteLock能够提供比排他锁更好的并发性和吞吐量。 class RWDictionary ...
       我们知道独占锁可以实现临界资源一次只能被一个线程访问,但如果想实现多个线程同时访问的话就要用到信号量Semaphore——记录一个共享资源被访问线程的个数,Semeahore更像是一个共享锁,当它的许可数为1的时候就相当于独占锁了;acquire(int n)拿许可,一次可拿多个、tryAcquire()尝试拿许可boolean,也可设置尝试获取时间、release()释放许可; public class SamephoreDemo { static Semaphor ...
java中的类大致分为三种:     1).系统类      2).扩展类      3).由程序员自定义的类类装载方式,有两种     1).隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐 ...
在sychronized中我们可以使用wait(),notify()来让线程等待、唤醒;在ReentrantLock中我们可以用Condition中的await(),signal()来实现; public class LockCondition { private static ReentrantLock lock=new ReentrantLock(); private static Condition condition=lock.newCondition(); ...
Global site tag (gtag.js) - Google Analytics