目录
[1. 并发的概念](#1. 并发的概念)
[2. 如何创建线程 四种方式:](#2. 如何创建线程 四种方式:)
[3. 一个线程频繁的创建和销毁 是否有开销?](#3. 一个线程频繁的创建和销毁 是否有开销?)
[4. 线程的生命周期和状态](#4. 线程的生命周期和状态)
[5. AQS设计模式](#5. AQS设计模式)
1. 并发的概念
是指多个任务(程序,进程)在同一时间间隔内被启动和执行的一种机制。
2. 如何创建线程 四种方式:
-
通过继承Thread类并重写run()方法实现;
-
实现Runnable接口并重写run()方法:
-
通过Callable接口实现有返回值的线程
-
通过线程池管理线程资源
3. 一个线程频繁的创建和销毁 是否有开销?
会带来显著的系统开销,每次的创建和销毁都需要消耗时间和内存数据结构;
解决方案:通过复用线程避免频繁创建销毁。任务达到时直接使用空闲线程,省去创建延迟。
4. 线程的生命周期和状态
-
new 新建状态
-
runable 可运行状态
-
blocked 阻塞状态
-
waiting 等待状态
-
timed-waiting 期限等待状态
-
terminated 终止状态
5. AQS设计模式
AQS 是java并发包的核心基础框架,用于构建索;核心功能是管理线程和阻塞与唤醒;
设计模式:1. 固化不变部分(父类实现)
线程排队(CLH队列管理)
阻塞/唤醒机制
2. 开放可变部分
资源获取:tryAcquire(int arg)
资源释放:tryRelease(int arg)
6. 七个基本数据类型
byte、short、int、long、float、double、char、boolean
7. 线程和进程的区别
-
hashmap的底层逻辑
-
方法重载和方法重写的区别