并发基础

 

1.进程与线程 

2.线程与进程的关系,区别,优缺点

3.并发与并行

4.线程的生命周期和状态

5.什么是上下文切换

6.什么是线程死锁,怎么避免线程死锁

7.sleep()方法与wait()方法的区别

8.为什么调用start()方法会自动调用run()方法,为什么不直接调用run()方法

 

线程之间的通信方式

为什么要使用线程池?

降低资源损耗、提高响应速度、提高线程的可管理性

线程池的创建

ThreadpoolExecutor 参数:核心线程数、最大线程数、存活时间(非核心线程)、阻塞队列设置,拒绝策略设置。

9.多线程为什么存在线程危险

因为JVM内存模型规定对象存储在主存(共享内存)中,每个线程都有自己的工作内存,对对象的操作都在工作内存中,而不能直接对主存进行操作。并且线程不能访问其他线程的工作内存。变量的值何时写入主存中并不确定。

 

10.synchronized关键字

简单介绍

使用方式  

https://www.cnblogs.com/lukelook/p/9946065.html

底层原理以及jdk1.6之后的优化

synchronized与ReentrantLock的区别

 

11.volatile关键字与synchronized关键字的区别

12.ThreadLocal

  简介

  内存泄漏

13.线程池

  线程池的优点

  Runable与Callable的区别

  execute()与submit()的区别

  ThreadPoolExecutor方式创建连接池

    参数分析

    饱和策略

14.原子类

  简介

  JUC中的4类原子类

  AtomicInteger

15.AQS

https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247484832&idx=1&sn=f902febd050eac59d67fc0804d7e1ad5&source=41#wechat_redirect

posted @ 2020-03-23 16:20  xxcnotes  阅读(156)  评论(0)    收藏  举报