Java基础知识日积月累(Tip of the Day26)

目录

1.jdk1.7和1.8CurrentHashMap添加元素过程​

2.线程的状态

3.虚拟机中线程状态

4.线程池

5.线程池一般不做销毁

6.concurrent包下的类都是线程安全的

7.创建线程池对象

8.数据可见性问题解释

9.同步代码块Sync运行方式,变量副本就是锁

10.原子性问题在i++和++i内存要有好几部进行产生

11.轻量级锁解决原子性问题

12.轻量级锁CAS和重量级锁Sync的区别

13.并发工具类

14.ctrl+h直接查看继承关系

15.等待线程机制


1.jdk1.7和1.8CurrentHashMap添加元素过程Java基础知识日积月累(Tip of the Day26)

Java基础知识日积月累(Tip of the Day26)

2.线程的状态

Java基础知识日积月累(Tip of the Day26)

3.虚拟机中线程状态

Java基础知识日积月累(Tip of the Day26)

4.线程池

Java基础知识日积月累(Tip of the Day26)

5.线程池一般不做销毁

Java基础知识日积月累(Tip of the Day26)

6.concurrent包下的类都是线程安全的

Java基础知识日积月累(Tip of the Day26)

7.创建线程池对象

Java基础知识日积月累(Tip of the Day26)

8.数据可见性问题解释

Java基础知识日积月累(Tip of the Day26)

Java基础知识日积月累(Tip of the Day26)

Java基础知识日积月累(Tip of the Day26)

9.同步代码块Sync运行方式,变量副本就是锁

Java基础知识日积月累(Tip of the Day26)

这里的变量副本都是线程本身的变量副本进行交换清空.

ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 
采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 
ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副本。 
ThreadLocal在Spring中发挥着巨大的作用,在管理Request作用域中的Bean、事务管理、任务调度、AOP等模块都出现了它的身影。 
Spring中绝大部分Bean都可以声明成Singleton作用域,采用ThreadLocal进行封装,因此有状态的Bean就能够以singleton的方式在多线程中正常工作了。 

10.原子性问题在i++和++i内存要有好几部进行产生

Java基础知识日积月累(Tip of the Day26)

11.轻量级锁解决原子性问题

Java基础知识日积月累(Tip of the Day26)

Java基础知识日积月累(Tip of the Day26)

12.轻量级锁CAS和重量级锁Sync的区别

Java基础知识日积月累(Tip of the Day26)

13.并发工具类

Java基础知识日积月累(Tip of the Day26)

14.ctrl+h直接查看继承关系

Java基础知识日积月累(Tip of the Day26)

15.等待线程机制

Java基础知识日积月累(Tip of the Day26)