AuomicInteger的作用, 高并发,有序性,原子性
使用compareandset设置cpu级别的锁,如果是0,就可以获取锁,如果是1,就抛出异常,结束线程,同时使用了只允许抢到锁的线程去解锁
AutomicBoolean
可替代volitic,同时,值都是放到主先吃个
Queue主要是安全的取queue中的数据
arraryblockqueue的插入 方法:put,插入满后,会一直等待被消费,offer满后,会丢弃,add满后再加入,会抛出异常
1)add(anObject):把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则招聘异常
2)offer(anObject):表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则返回false.
3)put(anObject):把anObject加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断直到BlockingQueue里面有空间再继续.
prioriotyblockqueue:容量是无限的PriorityBlockingQueue:类似于LinkedBlockQueue,但其所含对象的排序不是FIFO,而是依据对象的自然排序顺序或者是构造函数的Comparator决定的顺序.
Linkedblockqueue
syncronousQueue:无容量queue
delayQueue
java延迟队列提供了在指定时间才能获取队列元素的功能,队列头元素是最接近过期的元素。没有过期元素的话,使用poll()方法会返回null值,超时判定是通过getDelay(TimeUnit.NANOSECONDS)方法的返回值小于等于0来判断。延时队列不能存放空元素。
容器