![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 72
憨人啊
这个作者很懒,什么都没留下…
展开
-
java并发编程的艺术(一):并发编程的挑战
并发编程的挑战主要是在三个方面上下文切换 死锁 资源限制下面就这三个方面进行分别分析遇到的挑战以及如何应对。1)上下文切换 1.1 什么是上下文切换?多线程一定快么? 想了解上下文切换,我们先来了解几个概念。我们都知道在一块CPU上进行多线程,实际上是CPU通过时间分配算法给每个线程分配了不同的时间片,时间片就是CPU分配给每个线程的执行时间,由于时间片的单...原创 2018-09-16 14:43:40 · 349 阅读 · 0 评论 -
java并发机制的底层实现原理(一):volatile深入分析
java代码最终会被类加载器加载到JVM中,然后转化为汇编指令在CPU上执行。java中所使用的并发机制依赖于JVM的实现和CPU的指令。1.volatile的应用volatile是一个轻量级的synchronize,它保证了共享变量的可见性,确保了所有线程看到这个变量的值是一致的——变量一经修改所有的线程都可知道,都可以获得共享变量的最新值。但是volatile并不能保证原子性...原创 2018-09-16 18:56:46 · 266 阅读 · 0 评论 -
多线程Runnable匿名内部类一定要注意大坑
通常情况下,当需要模拟多线程的时候我们会选择两种方式。第一种就是自己实现Runnable类,然后在主类中调用我们自己实现的Runnable,例如:package concurrent;public class MyRunnable implements Runnable{ @Override public void run() { // TODO Auto-generated ...原创 2018-09-28 15:14:44 · 9944 阅读 · 3 评论 -
模拟多个线程访问共享资源:帮你跳过神坑
通常情况下,当需要模拟多线程的时候我们会选择两种方式。第一种就是自己实现Runnable类,然后在主类中调用我们自己实现的Runnable,例如:package concurrent;public class MyRunnable implements Runnable{ @Override public void run() { // TODO Auto-generated ...原创 2018-09-28 15:20:41 · 831 阅读 · 0 评论