Java concurrency
程序员小群
技术之路最公平也最残酷的原因是:没有捷径!需要日积月累的积累,以及对技术持久的热情!!
展开
-
线程安全的AtomicLong使用
atomiclong 可以理解是加了synchronized的long。public class Counter { private static long counter = 0; public static long addOne(){ return ++counter; } } 这个类在多线程的环境下就会有问题了,假如开多...转载 2018-07-23 11:40:16 · 909 阅读 · 0 评论 -
你真的了解volatile关键字吗?
http://www.importnew.com/24082.html 一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内...转载 2018-07-20 14:58:46 · 111 阅读 · 0 评论 -
TimeUnit用法
https://blog.csdn.net/lovelichao12/article/details/76080888 TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段1、主要作用 时间颗粒度转换 延时2、常用的颗粒度 TimeUnit.DAYS //天 TimeUnit.HOURS...转载 2018-07-22 12:43:59 · 1661 阅读 · 0 评论 -
闲谈System.nanoTime()函数
平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果,但是在执行一些循环中使用了System.currentTimeMillis,那么每次的结果将会差别很小,甚至一样,因为现代的计算机运行速度很快。后来看到java中产生随机数函数以及线程池中的一些函数使用的都是System.nanoTime,下面说一下这2个方法的具体区别。 ...转载 2018-07-22 17:30:56 · 382 阅读 · 0 评论 -
java 线程方法join的简单总结
https://www.cnblogs.com/lcplcpjava/p/6896904.html java 线程方法join的简单总结虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结。 一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:...转载 2018-08-06 17:23:58 · 123 阅读 · 0 评论 -
Java Thread.join()详解
https://blog.csdn.net/sinat_29384657/article/details/52228578一、使用方式。join是Thread类的一个方法,启动线程后直接调用,例如:Thread t = new AThread(); t.start(); t.join();二、为什么要用join()方法在很多情况下,主线程生成并起动了子线程,如果子线程里要进行...转载 2018-08-06 17:34:49 · 124 阅读 · 0 评论 -
java并发编程之LockSupport
LockSupport,构建同步组件的基础工具,帮AQS完成相应线程的阻塞或者唤醒的工作。LockSupport源码分析LockSupport定义了一组以park开头的方法来阻塞当前线程,unpark来唤醒被阻塞的线程。阻塞线程park()实现public static void park() { UNSAFE.park(false, 0L);}调用native...转载 2018-08-03 10:24:03 · 190 阅读 · 0 评论