笔记
孤独地卜师
这个作者很懒,什么都没留下…
展开
-
洗衣店管理系统
洗衣店管理系统 毕业设计原创 2022-09-18 17:51:43 · 110 阅读 · 1 评论 -
软件毕业设计 包含毕设和论文
java毕业设计 论文原创 2022-09-18 17:24:19 · 109 阅读 · 0 评论 -
Java中实现原子操作
可以通过锁和循环CAS的方式来实现原子操作1.锁的方式之前说过,不在详细说明。2.循环cas的方式也可以实现jvm中的cas操作使用到处理器提供的CMPXCHG指令实现。自旋cas实现的基本思路就是循环进行cas操作直到成功为止。具体类的操作可以参考juc下atomic包内的原子类。Atomic包的类基本都是使用Unsafe实现的包装类。原子更新基本类型类AtomicIntegerAtomicLongAtomicBoolean以AtomicInteger为例public final bo原创 2022-02-21 14:49:58 · 651 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier
什么是CountDownLatchCountDownLatch能够使一个线程等待其他线程完成各自的工作后再执行。使用场景:zookeeper分布式锁 Jmeter模拟高并发等。CountDownLatch如何工作的?CountDownLatch是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1.当计数器值到大0时,表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。什么是CyclicBarrier栅栏屏障,让一组线程到达一原创 2022-02-20 17:35:07 · 942 阅读 · 0 评论 -
Semaphore
什么是SemaphoreSemaphore的作用是控制访问特定资源的线程数目,底层依赖AQS的状态State,是比较常用的一个工具类。Semaphore的构造方法:public Semaphore(int permits) { sync = new NonfairSync(permits); }public Semaphore(int permits, boolean fair) { sync = fair ? new FairSync(permits) :原创 2022-02-19 22:25:24 · 147 阅读 · 0 评论 -
阻塞队列BlockingQueue
什么是BlockingQueueBlockingQueue是juc包提供的用于解决并发 生产者-消费者最有用的类,他的特性是在任意时刻只有一个线程可以进行take或者put操作,并且BlockingQueue提供了超时return null的机制,很多生成场景里都可以看到这个工具。ArrayBlockingQueue队列基于数组实现,容量大小在创建ArrayBlockingQueue对象时已定义好应用场景:在线程池中有比较多的应用,生产者消费者中。他是基于ReentrantLock保证线程安全的,原创 2022-02-19 21:08:25 · 719 阅读 · 0 评论 -
AQS源码解析(ReentrantLock)
实例化public ReentrantLock(boolean fair) {sync = fair ? new FairSync() : new NonfairSync();}fair为true是公平锁,false为false是非公平锁。公平锁的lock()方法final void lock() { acquire(1); }public final void acquire(int arg) { if (!tryAcquire(ar原创 2022-02-08 15:12:52 · 179 阅读 · 0 评论 -
JMM--
数据同步的八大原子操作1.lock 作用于主内存中的变量,把一个变量标记为一条线程的独占状态。2.unlock 作用于主内存中的变量,把一个处于锁定状态的变量释放出来,释放后的变量才能被其它线程锁定。3.read 作用于主内存中的变量,把一个变量值从主内存中传输到线程的工作内存中,以便下来的load操作使用。4.load 作用于工作内存的变量,他把read操作从主内存中得到的变量值放入工作内存的变量副本中。5.use 作用于工作内存中的变量,把工作内存中的一个变量值传递给执行引擎。6.assig原创 2022-02-02 23:42:45 · 339 阅读 · 0 评论 -
java jvm 垃圾收集器
jvm垃圾收集器1.Serial收集器 -XX:+UseSerialGC -XX:+UseSerialOldGCSerial 串行收集器是最基本的垃圾收集器,它是一个单线程的垃圾收集器,而且他在工作的时候必须暂停其它所有的工作线程(Stop The World)直到他收集结束。新生代采用复制算法,老年代采用标记整理算法。设计者们在后续的垃圾收集器设计中停顿时间在不断缩短。Serial垃圾收集器简单高效,没有线程的交互开销,可以获得很高的单线程收集效率。SerialOld收集器在1.5以及以前原创 2021-12-25 23:41:13 · 192 阅读 · 0 评论