ExecutorService Semaphore
并发实现一个计数器:引入问题
并发与高并发:
Java内存模型-写一篇文章
Java内存模型:Java Memory Model(JMM)
CPU包括运算逻辑部件、寄存器部件和控制部件等。寄存器在CPU上
Java堆:Heap运行时数据区,有垃圾回收来负责,可以动态分配大小,生存期也不必提前告诉编译器,是在运行时动态分配内存的,由于需要动态分配,所以速度比栈慢
Java栈:Stack速度仅次于寄存器,数据可以共享,缺点是栈中的数据的大小及生存期必须是确定的,
线程之间操作必须通过主内存
https://www.cnblogs.com/zhehan54/p/6130030.html
实现并发的方式有多种:比如多进程、多线程、IO多路复用。
进程是资源(CPU、内存等)分配的基本单位
自定义注解
https://blog.csdn.net/motui/article/details/79012846
线程安全性-原子性
compareAndSwapXXX:当前值和底层值对比,如果一样则执行,如果不一样,则重新获取再比较
AtomicLong LongAdder
https://blog.csdn.net/jesonjoke/article/list/1
http://www.cnblogs.com/hongten/p/hongten_oracle_plsql.html
CountDownLatch
- CountDownLatch是一个计数器,多用于线程,可以暂停也可以继续
- await()阻塞线程;countDown()计数器计数
ConcurrentHashMap http://www.importnew.com/28263.html https://www.cnblogs.com/heyonggang/p/9112731.html
AtomicInteger https://www.cnblogs.com/sharkli/p/5623524.html
好的习惯,实体都实现toString()方法