java并发编程
文章平均质量分 92
TzBugs
冥冥之中,自有天意。
展开
-
Java并发系列一:什么是并发?
由于最近想重新看下并发方面的知识,所以拿来总结一下,和大家分享探讨一下。1.为什么要用到并发?并发编程在一定程度上离不开多核CPU的发展。随着单核CPU的研发已经不能遵循“摩尔定律”(摩尔定律是硬件发展的观测定律,另外还有基于“摩尔定律”的“反摩尔定律”,不过“反摩尔定律”是软件领域的定律,有兴趣的可以自行了解),硬件工程师们为了进一步提升计算速度,而不是再追求单独的计算单元,而是将多个计算单元整...原创 2018-07-05 10:16:17 · 6461 阅读 · 0 评论 -
Java并发系列二:线程的创建、状态转换及基本操作
在上一篇文章中Java并发专题【1】并发编程的优缺点谈到了为什么花功夫去学习并发编程的技术,也就是说我们必须了解到并发编程的优缺点,我们在什么情况下可以去考虑开启多个线程去实现我们的业务,当然使用多线程我们应该着重注意一些什么,在上一篇文章中会有一些讨论。那么,说了这么多,无论是针对面试还是实际工作中作为一名软件开发人员都应该具备这样的技能。万事开头难,接下来就应该了解如何新建一个线程?线程状态是...原创 2018-07-05 14:21:51 · 658 阅读 · 1 评论 -
Java并发系列三:Java内存模型以及happens-before规则
注:本文参考于 微信公众号:Java知音JMM的介绍在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了。在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是线程不安全的,否则则是线程安全的。虽然这种回答似乎不能获取什么内容,...原创 2018-07-05 17:43:04 · 427 阅读 · 1 评论 -
Java并发系列四:深入理解synchronized关键字
1. synchronized简介在学习知识前,我们先来看一个现象:public class SynchronizedDemo implements Runnable { private static int count = 0; public static void main(String[] args) { for (int i = 0; i < 10; i++) {...原创 2018-07-06 11:05:58 · 294 阅读 · 0 评论 -
Java并发系列五:深入理解volatile关键字
1. volatile简介在上一篇文章中我们深入理解了java关键字synchronized,我们知道在java中还有一大神器就是关键字volatile,可以说是和synchronized各领风骚,其中奥妙,我们来共同探讨下。通过上一篇的文章我们了解到synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁。而volatile就可以说是java虚拟机提供的最轻量级的同步机制。J...原创 2018-07-06 13:46:21 · 271 阅读 · 0 评论 -
Java并发系列六:深入了解final关键字
1. final的简介final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类。即使知道final具体的使用方法,但是,final在多线程中存在的重排序问题也很容易被人忽略,希望能够一起做下探讨。2. final的具体使用场景final能够修饰变量,方法和类,也就是final使用范围基本涵盖了java每个地方,下面就分别以锁修饰...原创 2018-07-06 15:19:49 · 1314 阅读 · 3 评论