优分销app下载seo应该怎么做
线程基础
线程和进程的区别:
-----------------------------------------------------------------------
创建线程的方式:
1 继承Thread类
2 实现runnable接口
3 实现callable 接口(有返回值的)
4 线程池创建线程
-------------------------------------------------------------------------
run()方法和start()方法有什么区别;
start方法是用来启动线程的,只能被调用一次
run()方法封装的是要执行的代码,可以执行多次
-----------------------------------------------------------------------------------
线程包括哪些状态,状态之间是如何变化的?
-------------------------------------------------------------------------------------
有多个线程如何保证按顺序执行?
使用join()方法
------------------------------------------
notify()和notifyAll()有什么区别?
notifyAll唤醒所有wait线程
notify只随机唤醒一个wait线程
------------------------------------------
wait和sleep方法有什么不同?
--------------------------------------------------------------------------------------------------------------------
如何停止线程?
=================================================================
线程安全相关面试题
synchronized关键字的底层原理
谈谈JMMjava内存模型
CAS知道吗?乐观锁和悲观锁的区别?
谈谈你对volatile的理解?
什么是AQS?
线程池中有哪些常见的阻塞队列?
为什么不建议使用Executors创建线程池?
多线程的使用场景?
谈谈你对ThreadLocl理解?
它是解决线程安全的操作类,她会给每个线程分配一个独立的线程副本,解决了线程并发访问冲突的问题。他也实现了线程内的资源共享