Wesley13 Wesley13
3年前
java并发编程(一)
Java并发编程:volatile关键字解析volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volat
Wesley13 Wesley13
3年前
Java并发系列5
今天讲一个倒计时器工具,叫CountDownLatch。需要这个工具的场景大概有:当所有的小任务都完成之后,再启动大任务。先看代码:publicclassCountDownLatchDemo{staticfinalCountDownLatchLATCHnewCountDownLatch(10);
Wesley13 Wesley13
3年前
Java并发(四):happens
happensbefore一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happensbefore关系happenbefore原则是JMM中非常重要的原则,它是判断数据是否存在竞争、线程是否安全的主要依据,保证了多线程环境下的可见性。happensbefore原则定义:1\.如果一个操作happensb
Wesley13 Wesley13
3年前
Java并发包小结
1、Lock  Lock功能对应关键字synchrozied功能,lock和unlock方法用于加锁和释放锁。等待锁的线程加入到等待链表中,同时阻塞线程,锁释放时,从等待链表中取出等待的线程执行,取等待的线程分公平与非公平两种方式,公平方式取第一个等待的线程,非公平方式当前正在获取锁的线程可能立刻执行,而不用加入到等待队列中,排队执行。2、Con
Stella981 Stella981
3年前
Redis高并发7
1、主从架构的核心原理当启动一个slavenode的时候,它会发送一个PSYNC命令给masternode如果这是slavenode重新连接masternode,那么masternode仅仅会复制给slave部分缺少的数据;否则如果是slavenode第一次连接masternode,那么会触发一次fullre
Wesley13 Wesley13
3年前
Java并发编程1
1 为什么要使用多线程使用多线程的原因主要有以下几点:(1)更有效的运用多核心处理器一个线程在一个时刻只能运行在一个处理器核心上,所以单线程程序在同一时刻只能使用一个处理器核心,而多个线程在同一时刻可以使用多个处理器核心,显然能更加有效的运用多核心处理器。(2)更快的响应时间一些较为复杂的代码可以使
Wesley13 Wesley13
3年前
NIO高并发基础
NIO高并发是jdk1.4出现的新的流.NIONewIO同步式非阻塞式IOBIOBlockingIO同步式阻塞式IOUDP/TCPAIOAsynchronousIO异步式非阻塞IOjdk1.8BIO的缺点1.会产生阻塞行为receive/accept/connect/r
Wesley13 Wesley13
3年前
Java并发机制(3)
Java并发编程:volatile关键字解析(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnblogs.com%2Fdolphin0520%2Fp%2F3920373.html)及内存模型
Wesley13 Wesley13
3年前
Java并发系列[6]
Semaphore(信号量)是JUC包中比较常用到的一个类,它是AQS共享模式的一个应用,可以允许多个线程同时对共享资源进行操作,并且可以有效的控制并发数,利用它可以很好的实现流量控制。Semaphore提供了一个许可证的概念,可以把这个许可证看作公共汽车车票,只有成功获取车票的人才能够上车,并且车票是有一定数量的,不可能毫无限制的发下去,这样就会导致公交车
Wesley13 Wesley13
3年前
Java并发编程系列
!(https://oscimg.oschina.net/oscnet/d6e38e4ee3339dd73527c06e6d6bfdfaa04.jpg)目前已经更新完《Java并发编程》,《Docker教程》和《JVM性能优化》,欢迎关注【后端精进之路】,轻松阅读全部文章。<divaligncenter<imgsrc"htt