java
向上的胡萝卜
这个作者很懒,什么都没留下…
展开
-
java-synchronized
1.场景:----------------以下都是对象锁----------------------------------------------Synchronized同步方法方法1.关键字Synchronized取得的锁都是对象锁2.多个线程去争抢同个对象锁的时候容易导致脏读3.可重入锁:因为关键字取得的是对象锁,可以通过重入锁调用父类的同步方法:为什么呢,因为父类方法本原创 2016-03-22 18:23:10 · 218 阅读 · 0 评论 -
ReentrantLock
ReentrantLock1. ReentrantLock lock.lock(); lock.unlock();相当于synchronized语句块lock.tryLock() 如果锁已经被保持了的话就直接跳过,不阻塞吧2.Condition condition = lock.newCondition();condition.await();//必须卸原创 2016-03-23 14:34:43 · 272 阅读 · 0 评论 -
java-volatile
volatile关键字意义: 解决了私有堆栈和公共堆栈的值不同步问题。强制性从公共堆栈中取值。1.保证数据的可见性,不保证原子性(原子性:要么一起成功,要么一起失败);synchronized会保证原子性,并且会将私有内存和公共内存做同步所以也支持可见性2.是线程同步的轻量级实现3.只能修饰变量4.volatile不会发生阻塞,synchronized会发生阻塞5.只能原创 2016-03-22 13:27:32 · 238 阅读 · 0 评论 -
多线程 等待/通知机制
多线程 等待/通知机制1.通过操作值和操作栈进行传递消息 多生产 多消费 模式要多看看2.通过管道进行传递消息2.1字节流PipedInputStream PipedOutputStream2.2字符流PipedReader PipedWriter3.join 意思就是把子线程合并到主线程上来主线程创建并启动了子线程,为了防止子线程未完成原创 2016-03-23 17:01:27 · 722 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap1.实现原理2.数据结构3.增删改查一.实现原理锁分离 ConcurrentHashMap使用分段锁技术,将数据分段存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问,能够实现真正的并发访问。对于一个key,需要经过三次(为什么要hash三次下文会详细讲解)hash操转载 2016-03-25 16:23:59 · 335 阅读 · 0 评论 -
内部类
嵌套类 内部类特点区别嵌套类:静态嵌套类1.用的很少2.只能访问外部类静态成员内部类:非静态嵌套类内部类分为成员内部类、方法内部类、匿名内部类。几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能用普通的方式访问原创 2017-03-17 21:11:21 · 213 阅读 · 0 评论