目录

1. 并发的概念

2. 如何创建线程  四种方式:

3. 一个线程频繁的创建和销毁 是否有开销?

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

5. AQS设计模式

6. 七个基本数据类型

7. 线程和进程的区别   

8. hashmap的底层逻辑

9. 方法重载和方法重写的区别


1. 并发的概念

是指多个任务(程序,进程)在同一时间间隔内被启动和执行的一种机制。


2. 如何创建线程  四种方式:

1. 通过继承Thread类并重写run()方法实现;

2. 实现Runnable接口并重写run()方法:

3. 通过Callable接口实现有返回值的线程

4. 通过线程池管理线程资源


3. 一个线程频繁的创建和销毁 是否有开销?

会带来显著的系统开销,每次的创建和销毁都需要消耗时间和内存数据结构;

解决方案:通过复用线程避免频繁创建销毁。任务达到时直接使用空闲线程,省去创建延迟。


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

1. new 新建状态

2. runable 可运行状态

3. blocked 阻塞状态

4. waiting 等待状态

5. timed-waiting 期限等待状态

6. terminated 终止状态


5. AQS设计模式

AQS 是java并发包的核心基础框架,用于构建索;核心功能是管理线程和阻塞与唤醒;

设计模式:1. 固化不变部分(父类实现)

                  线程排队(CLH队列管理)

                  阻塞/唤醒机制

                 2.  开放可变部分

                  资源获取:tryAcquire(int arg)

                  资源释放:tryRelease(int arg)


6. 七个基本数据类型

byte、short、int、long、float、double、char、boolean


7. 线程和进程的区别   

进程就像是一家公司,线程就像是公司里的员工;

进程之间相互独立,一个进程崩溃不会影响其他进程;同一进程内的线程高度依赖。


8. hashmap的底层逻辑

hashmap是一种基于数据+链表/红黑树实现的高效键值对存储结构,其核心在于哈希函数和冲突解决机制。


9. 方法重载和方法重写的区别

重载:在同一个类中定义多个同名但参数方法不同的方法

重写:子类中重新定义父类中已经存在的方法,提供特定的实现

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐