11 2019 档案
发表于 2019-11-08 10:43阅读:152评论:0推荐:0
摘要:一.CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDownLatch
阅读全文 »
发表于 2019-11-08 10:36阅读:545评论:0推荐:0
摘要:Lock读写锁机制可以实现! 在Java中Lock接口比synchronized块的优势是什么? Lock接口最大的优势是为读和写分别提供了锁。 1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 import java.u
阅读全文 »
发表于 2019-11-08 10:35阅读:203评论:0推荐:0
摘要:阻塞队列与普通队列的不同在于。当队列是空的时候,从队列中获取元素的操作将会被阻塞,或者当队列满时,往队列里面添加元素将会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得
阅读全文 »
发表于 2019-11-08 10:17阅读:740评论:0推荐:0
摘要:什么是死锁? 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 不适当的使用“synchronized”关键词来管理线程对特定对象的访问。“synchronized”关键词的作用是,确保在某个时刻只有一个线程被允许执行特定的代码块,因此
阅读全文 »
发表于 2019-11-08 10:03阅读:303评论:0推荐:0
摘要:看代码 public static void main(String[] args) { // TODO Auto-generated method stub new MyThread().start(); new MyThread().start(); } class MyThread exten
阅读全文 »
发表于 2019-11-08 09:38阅读:151评论:0推荐:0
摘要:生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); } catch (InterruptedExc
阅读全文 »
发表于 2019-11-08 08:52阅读:14113评论:1推荐:1
摘要:Spring boot中的注解@ConditionalOnProperty,可以通过配置文件中的属性值来判定configuration是否被注入, @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.
阅读全文 »
发表于 2019-11-06 17:25阅读:401评论:0推荐:0
摘要:Java注解简介 开发中经常使用到注解,在项目中也偶尔会见到过自定义注解,今天就来探讨一下这个注解是什么鬼,以及注解的应用场景和如何自定义注解。 下面列举开发中常见的注解 @Override:用于标识该方法继承自超类, 当父类的方法被删除或修改了,编译器会提示错误信息(我们最经常看到的toStrin
阅读全文 »