随笔分类 - javaJuc-learning
摘要:在公司开发中遇到一个就是非包装类型和包装类型的空指针异常问题: 大概如下: 当s == s2时候就会报空指针异常, s == s4 时候是不会报空指针的,在包装类型里面是可以为空的 可以打开注释模块,编译器会报错的, 那么在开发者一般使用
阅读全文
摘要:ArrayBlockingQueue的介绍: ArrayBlockingQueue,顾名思义:基于数组的阻塞队列。数组是要指定长度的,所以使用ArrayBlockingQueue时必须指定长度,也就是它是一个有界队列。 它实现了BlockingQueue接口,有着队列、集合以及阻塞队列的所有方法,
阅读全文
摘要:hashmap不是一个线程安全的类,上面就是对其进行测试 执行结果: 再执行一次: 可见不是线程安全的, 测试concurrentHashmap,可以知道是线程安全的 hashtable也是线程安全: 总结:通过semaphore来模拟线程数,然后通过countdownlatch线程计数器来计算执行
阅读全文
摘要:在Java的并发包中,Semaphore类表示信号量。Semaphore内部主要通过AQS(AbstractQueuedSynchronizer)实现线程的管理。Semaphore有两个构造函数,参数permits表示许可数,它最后传递给了AQS的state值。线程在运行时首先获取许可, 如果成功,
阅读全文
摘要:CountDownLatch的作用是能使用多个线程进来之后,且线程任务执行完毕之后,才执行, 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都
阅读全文
摘要:CyclicBarrier,一个同步辅助类,在API中是这么介绍的: 它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等
阅读全文
摘要:常用设计模式 什么是设计模式? 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软
阅读全文
摘要:java并发包&线程池原理分析&锁的深度化 并发包 同步容器类 Vector与ArrayList区别 1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制
阅读全文
摘要:一 本身自带的方法进行使用: 二:redisson使用:
阅读全文
摘要:volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。 由于
阅读全文