摘要:
1.LinkedBlockingQueue 2.ArrayBlockingQueue 3.DelayQueue可以当做定时任务 4.TransferQueue 5.SynchronousQueue 这个是容量为0的队列,生产者直接把数据交给消费者 总结 阅读全文
posted @ 2019-10-18 17:56
我爱si搬砖
阅读(426)
评论(0)
推荐(0)
摘要:
ConcurrentHashMap的效率要比HashTable的效率高, 因为他两个加锁的粒度不同, HashTable是锁的整个对象 ConcurrentHashMap锁的是其中的一部分,大锁换成小锁 阅读全文
posted @ 2019-10-18 17:06
我爱si搬砖
阅读(169)
评论(0)
推荐(0)
摘要:
这是一个买票的问题 解决方案: 3.优化 阅读全文
posted @ 2019-10-18 16:34
我爱si搬砖
阅读(201)
评论(0)
推荐(0)
摘要:
单例多例需要搞明白两个问题:1. 什么是单例多例;2. 如何产生单例多例;3. 为什么要用单例多例4. 什么时候用单例,什么时候用多例;1. 什么是单例、多例:所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理 阅读全文
posted @ 2019-10-18 15:49
我爱si搬砖
阅读(300)
评论(0)
推荐(0)
摘要:
1.静态方法和非静态方法 2.静态类和非静态类的区别 阅读全文
posted @ 2019-10-18 15:42
我爱si搬砖
阅读(123)
评论(0)
推荐(0)
摘要:
下面代码中B继承了A,在new B对象时,首先执行A的无参构造,不管是new B的有参还是无参。 使用无参构造方法new B时,会执行B的无参构造方法;使用有参构造new B对象时,会执行B的有参构造方法 控制台打印为: 阅读全文
posted @ 2019-10-18 15:15
我爱si搬砖
阅读(159)
评论(0)
推荐(0)
摘要:
线程局部变量 阅读全文
posted @ 2019-10-18 14:43
我爱si搬砖
阅读(126)
评论(0)
推荐(0)
摘要:
1.若是有判断情况下使用wait()方法,是线程中断,则使用while(){}的方法进行判断。 因为判断满足了If的条件,使这个线程中断,进行等待,下次再执行时,它会接着这个if判断继续执行下去,这样可能会出问题。 而while(){}方法会继续执行while进行判断,再做其他的事情。 阅读全文
posted @ 2019-10-18 13:19
我爱si搬砖
阅读(289)
评论(0)
推荐(0)
摘要:
注:处于wait状态下的线程没有被唤醒,不能去抢锁 1.容器 2.生产者 3.消费者 4.测试 阅读全文
posted @ 2019-10-18 13:10
我爱si搬砖
阅读(114)
评论(0)
推荐(0)