多线程,并发
DoubleWeiWei001
这个作者很懒,什么都没留下…
展开
-
如果synchronized是不可重入的,为什么重载父类函数后(重载函数也加锁)会产生死锁?
我们知道synchronized可以加在方法上也可以加在代码块上,其实加在方法上也相当于加载代码块上,好比这种形式: synchronized(this){ doSomething(); }从这里可以看出,锁其实是基于对象的,是对当前访问的对象进行加锁,现在假设有如下两个类: class Widget{ synchronized doSomething(){ ....原创 2017-11-20 18:20:01 · 877 阅读 · 0 评论 -
Java内置锁与synchronized关键字
转载自:http://blog.csdn.net/a19881029/article/details/8215775 Java提供了一种内置的锁机制来支持原子性 每一个Java对象都可以用作一个实现同步的锁,称为内置锁,线程进入同步代码块之前自动获取到锁,代码块执行完成正常退出或代码块中抛出异常退出时会释放掉锁 内置锁为互斥锁,即线程A获取到锁后,线程B阻塞直到线程A释放锁,线程转载 2017-11-20 20:48:23 · 259 阅读 · 0 评论 -
彻底理解ThreadLocal
尊重原创 :http://blog.csdn.net/lufeng20/article/details/24314381 ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLoca转载 2017-11-22 11:02:44 · 203 阅读 · 0 评论 -
利用volatile解决异步死循环的问题
//先我们来看看一下下面的代码: public class Run { public static void main(String[] args) { try { ThreasA threasA = new ThreasA(); threasA.start(); Thread.sleep(1000); threasA.setRunning(false); S原创 2017-12-15 15:26:29 · 986 阅读 · 1 评论 -
死磕Java并发:深入分析synchronized的实现原理
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。 诚然,随着Javs转载 2017-12-18 15:29:38 · 180 阅读 · 0 评论 -
线程死锁的四个条件
一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象(1)可剥夺资源和不可剥夺资源:可剥夺资源是指某进程在获得该...原创 2018-03-17 11:34:34 · 5478 阅读 · 0 评论 -
CountDownLatch使用场景以及与join函数的区别
参考:https://blog.csdn.net/zhutulang/article/details/48504487 https://www.2cto.com/kf/201710/688656.html概念:CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示...原创 2018-04-10 16:12:42 · 174 阅读 · 0 评论 -
高并发网络编程之epoll详解
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和p...转载 2018-04-27 22:56:51 · 127 阅读 · 0 评论 -
ReentrantLock公平所与非公平锁,condition等待
ReentrantLock实现原理 Java多线程——Condition条件 java并发编程之Condition ReentrantLock加锁(lock())、释放锁(unlock())的实现转载 2018-08-26 10:08:59 · 282 阅读 · 0 评论