java多线程
前言:
最近准备找工作,看了狂神说多线程的视频复习以下Java多线程,做了笔记,有空再把代码贴上来。在这里也感谢秦疆老师。
进程和线程
进程:程序执行的过程,是系统资源分配的单位。
线程:CPU调度和执行的单位。
线程创建
- Thread class
- Runnable 接口
- Callable 接口
Thread
- 继承Thread类;
- 重写run();
- 创建线程对象,调用start()方法启动线程。
总结:线程开启不一定立即执行,由cpu调度执行。
Runnable
1.实现Runnable接口;
2.重写run();
3.创建一个Thread类的实体(丢入runnable接口的实现类),调用start()方法启动线程。
总结:推荐使用Runnable,静态代理,方便同一个对象被多个线程调用,避免了单继承的局限性。
Callable
- 实现Callable接口,需要返回值;
- 重写call方法;
- 新建实体;
- 创建执行服务;
`ExecutorService ser = Executors.newFixedThreadPool(3);`
- 提交执行;
`Future<Boolean> t1 = ser<