java高并发编程
垃圾继承拖拉机
押井守的巴吉度犬被我偷走辣
展开
-
JAVA高并发编程--第四章读书笔记
的优化 减少锁的持有时间 对需要同步的代码部分使用同步代码块,对不需要同步的代码尽量不使用同步代码块。 较少锁的粒度 JDK的并发容器ConcurrentHashMap,如果对其整个进行加锁,加锁粒度太大,因为ConcurrentHashMap中细分了若干个HashMap,ConcurrentHashMap中可细分成16段,故可根据具体情况对某一段加锁减少加锁粒度。 用读写分离锁来代替独占锁 读写分离锁即ReadWriteLock,这是减少锁粒度的特殊情况。 锁...原创 2020-07-30 23:46:58 · 128 阅读 · 0 评论 -
JAVA高并发编程--第三章读书笔记
中断响应 P74的代码,一开始死锁形成的原因是t1占用lock1请求lock2,t2占用lock2请求lock1,而后来死锁得以释放是因为 49行T2中断后,不再等待lock1,同时释放lock2。T1可以继续运行,而t2放弃任务直接退出。 如果这里是synchronize关键字形成的死锁,则无法像这里使用lock形成的死锁那么好处理。 注: lockinterruptibly()方法比较特殊,当通过这个方法去获取锁时,如果线程正在等待获取锁,则这个线程能够通过interr...原创 2020-07-30 23:46:09 · 219 阅读 · 0 评论 -
JAVA高并发编程--第二章读书笔记
新建线程的两种方法 继承Thread类并重写run()方法(一般采用匿名内部类) class ThreadTest extends Thread{ //若用run方法而非start方法开启新线程,他只会在当前线程调用run方法,而不会开启新//线程。 @Override public void run() { for (int i=1;i<10;i++){ System.out.println(Thread.currentThread()...原创 2020-07-30 23:45:08 · 164 阅读 · 0 评论