- 博客(10)
- 收藏
- 关注
原创 解决IntelliJ Idea上执行打包时自动下载maven-metadata文件而导致卡住很久的问题!
问题如题目所述,这个问题困扰了我一阵子,每次打包,都会去下载maven-metadata,而且有很多个需要下载,但是maven私仓上并没有这样的文件,导致每下载一个都卡住很久,所以打一个包要花好多时间,刚开始很少打包,还能忍,后面打包次数多了,实在是忍无可忍,于是找到了彻底解决这个问题的办法:1.点击项目右上方下拉框选择【Edit Configurations...】2.在弹出的面板中...
2019-01-21 20:05:24 8122 4
原创 Java高并发编程之ThreadLocal
package vip.ithub.concurrent;import java.util.concurrent.TimeUnit;/*** @author: Chenzhenyong* @description: ThreadLocal是使用空间换时间,synchronized是使用时间换空间* @date: Created in 16:01 2018/11/14*/publi...
2018-11-14 16:06:41 224
原创 Java高并发编程之Lock和Condition
前一篇文章,使用synchronized和wait、notify/notifyAll结合解决经典的生产者和消费者面试题,详见:Java高并发编程之经典面试题:生产者与消费者线程这并不是唯一的解决方案,还有更好的,本篇文章讲解如何使用Lock和Condition来实现。notify/notifyAll的缺陷在于不能指定哪些线程被唤醒,notifyAll的时候,wait状态的生产者和消费者统统被唤...
2018-11-14 15:49:58 302
原创 Java高并发编程之经典面试题:生产者与消费者线程
面试题如下:写一个固定容量的同步容器,拥有put、get和getCount方法,要求能够支持5个生产者线程以及10个消费者线程的阻塞调用。写一个容器拥有put、get和getCount,这事不难,难点在于,这是一个同步容器,就是说当有多个线程同时进行put和get的时候,不能出错。进一步分析:1、如果容器为空,那么调用get方法的线程(消费者)需要等待(wait)2、如果容器已满,那么调...
2018-11-14 14:57:39 1011
原创 Java高并发编程之ReentrantLock
ReentrantLock和synchronized一样,都是可重入的,但是它与synchronized是有区别的,在了解两者的区别之前,先尝试着,使用ReentrantLock替换synchronized。先看下面synchronized的代码:public class T016 { synchronized void m1() { for(int i = 0; i...
2018-11-14 10:41:17 160
原创 Java高并发编程之CountDownLatch
上一篇文章解决了这个面试题:实现一个容器,提供两个方法,add和size。写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5时,线程2给出提示并结束。采用synchronized、wait和notify相结合的方式,详见:Java高并发编程之synchronized与wait和notify结合尽管这是挺好的解决办法,当绝对谈不上最佳,本篇文章进一步讲解更优的解决方案...
2018-11-11 22:14:11 200
原创 Java高并发编程之synchronized与wait和notify结合
有一道面试题是这样的:实现一个容器,提供两个方法,add和size。写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5时,线程2给出提示并结束。咋一看,似乎并不能,首先,实现一个容器如下:public class MyContainer1 { List<Object> lists = new ArrayList<>(); pu...
2018-11-11 21:54:03 2154
原创 Java高并发编程之volatile关键字
前两篇文章讲了synchronized关键字,详见:Java高并发编程之synchronized关键字(一)Java高并发编程之synchronized关键字(二)依然先从一段简单的代码开始:public class T011 { public boolean running = true; public void m() { System.out.prin...
2018-11-11 21:04:13 190
原创 Java高并发编程之synchronized关键字(二)
上一篇文章讲了synchronized的部分关键要点,详见:Java高并发编程之synchronized关键字(一)本篇文章接着讲synchronized的其他关键点。在使用synchronized关键字的时候,不要以字符串常量作为锁定对象。看下面的例子:public class T012 { public String s1 = "hello"; public String...
2018-11-11 20:50:31 361
原创 Java高并发编程之synchronized关键字(一)
首先看一段简单的代码:public class T001 { private int count = 0; private Object o = new Object(); public void m() { //任何线程要执行下面这段代码,必须先拿到o的锁 synchronized (o) { count++; ...
2018-11-11 19:49:00 266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人