- 博客(4)
- 收藏
- 关注
原创 Java学习笔记-多线程之CAS
CAS (Comper And Swap)CAS的原理利用现代处理器都支持的CAS指令循环这个指令,直到成功为止CAS的问题ABA问题有两个线程对同一个变量操作,线程1:如果变量为A,那么将变量改为B,线程2:将变量从A改为C,再改为A.假设线程2执行的速度更快,将变量修改了一边,但是线程1做compare运算时,并没有发现变量发生改变,将变量改为B开销问题如果CAS运算长期不成功,处在自旋状态,将会增加CPU的开销只能保证一个共享变量的原子操作JDK中相关的原子操作类
2020-07-07 20:27:53
184
原创 Java学习笔记-多线程基础知识
一、基础概念CPU核心数和线程数的关系多核心:也指单芯片多处理器( Chip Multiprocessors,简称CMP),CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理多线程: Simultaneous Multithreading.简称SMT.SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源
2020-07-06 22:33:59
288
原创 Java学习笔记-注解与反射
一、注解注解的作用或意义是什么?注解本身没有任何意义,单独的注解就是一种注释,它需要结合其他如反射、插桩等技术才有意义。Java注解(Annotation)又称作Java标注,是JDK1.5引入的一种注释机制。是元数据的一种形式,提供有关程序但不属于程序本身的数据。注解对它们注解的代码的操作没有直接影响。元注解在定义注解时,注解类也能够使用其他的注解声明.对注解类型进行注解的注解类,称之为meta-annotation(元注解)。声明的注解运行作用于哪些节点使用@Target声明;保留级别由@Re
2020-06-30 21:12:13
307
1
原创 Java学习笔记-泛型
一、泛型1. 什么是泛型?Java泛型 generics 是JDK5中引入的 一种参数化2. 为什么使用泛型,使用它的好处?更健壮(只要编译器没有警告,那么运行期就不会出现ClassCastException)更简洁,不用类型强转更灵活,复用// List.java 中排序对泛型的使用default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a
2020-06-22 18:53:00
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人