欢迎大家关注我的公众号:程序那些事
回复「资料」即可免费获得千本技术秘籍!区块链,java,前端,大数据,人工智能,安全,架构,算法,数据库,面试技巧等等方面,应用尽有先到先得!

Tagged: 多线程

java内存模型(JMM)和happens-before

java内存模型(JMM)和happens-before

java内存模型(JMM)和happens-before 我们知道java程序是运行在JVM中的,而JVM就是构建在内存上的虚拟机,那么内存模型JMM是做什么用的呢? 我们考虑一个简单的赋值问题: i...

非阻塞算法(Lock-Free)的实现

非阻塞算法(Lock-Free)的实现

非阻塞算法(Lock-Free)的实现 上篇文章我们讲到了使用锁会带来的各种缺点,本文将会讲解如何使用非阻塞算法。非阻塞算法一般会使用CAS来协调线程的操作。 虽然非阻塞算法有诸多优点,但是在实现上要...

非阻塞同步机制和CAS

非阻塞同步机制和CAS

非阻塞同步机制和CAS 我们知道在java 5之前同步是通过Synchronized关键字来实现的,在java 5之后,java.util.concurrent包里面添加了很多性能更加强大的同步类。这...

由于不当的执行顺序导致的死锁

由于不当的执行顺序导致的死锁

由于不当的执行顺序导致的死锁 为了保证线程的安全,我们引入了加锁机制,但是如果不加限制的使用加锁,就有可能会导致顺序死锁(Lock-Ordering Deadlock)。上篇文章我们也提到了在线程词中...

我们的线程被饿死了

我们的线程被饿死了

我们的线程被饿死了 我们在构建线程池的时候可以构建单个线程的线程池和多个线程的线程池。 那么线程池使用不当可不可能产生死锁呢?我们知道死锁是循环争夺资源而产生的。线程池中的线程也是资源的一种,那么如果...

在java中构建高效的结果缓存

在java中构建高效的结果缓存

在java中构建高效的结果缓存 缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。 ...