自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 解决IntelliJ Idea上执行打包时自动下载maven-metadata文件而导致卡住很久的问题!

问题如题目所述,这个问题困扰了我一阵子,每次打包,都会去下载maven-metadata,而且有很多个需要下载,但是maven私仓上并没有这样的文件,导致每下载一个都卡住很久,所以打一个包要花好多时间,刚开始很少打包,还能忍,后面打包次数多了,实在是忍无可忍,于是找到了彻底解决这个问题的办法:1.点击项目右上方下拉框选择【Edit Configurations...】2.在弹出的面板中...

2019-01-21 20:05:24 7930 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 198

原创 Java高并发编程之Lock和Condition

前一篇文章,使用synchronized和wait、notify/notifyAll结合解决经典的生产者和消费者面试题,详见:Java高并发编程之经典面试题:生产者与消费者线程这并不是唯一的解决方案,还有更好的,本篇文章讲解如何使用Lock和Condition来实现。notify/notifyAll的缺陷在于不能指定哪些线程被唤醒,notifyAll的时候,wait状态的生产者和消费者统统被唤...

2018-11-14 15:49:58 274

原创 Java高并发编程之经典面试题:生产者与消费者线程

面试题如下:写一个固定容量的同步容器,拥有put、get和getCount方法,要求能够支持5个生产者线程以及10个消费者线程的阻塞调用。写一个容器拥有put、get和getCount,这事不难,难点在于,这是一个同步容器,就是说当有多个线程同时进行put和get的时候,不能出错。进一步分析:1、如果容器为空,那么调用get方法的线程(消费者)需要等待(wait)2、如果容器已满,那么调...

2018-11-14 14:57:39 982

原创 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 153

原创 Java高并发编程之CountDownLatch

上一篇文章解决了这个面试题:实现一个容器,提供两个方法,add和size。写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5时,线程2给出提示并结束。采用synchronized、wait和notify相结合的方式,详见:Java高并发编程之synchronized与wait和notify结合尽管这是挺好的解决办法,当绝对谈不上最佳,本篇文章进一步讲解更优的解决方案...

2018-11-11 22:14:11 192

原创 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 2126

原创 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 181

原创 Java高并发编程之synchronized关键字(二)

上一篇文章讲了synchronized的部分关键要点,详见:Java高并发编程之synchronized关键字(一)本篇文章接着讲synchronized的其他关键点。在使用synchronized关键字的时候,不要以字符串常量作为锁定对象。看下面的例子:public class T012 { public String s1 = "hello"; public String...

2018-11-11 20:50:31 351

原创 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 240

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除