多线程入门
多线程基础
线程的基础知识
1、什么是进程
进程就是电脑里的运行程序,例如QQ、微信、英雄联盟,它是一组线程的集合,也可以看做重量级线程,因为进程的创建与销毁会很消耗性能
2、什么是线程
一条完整的执行路径,轻量级进程。
3、单线程与多线程的区别
一个打工人完成一件事花一分钟,完成两件事要两分钟,三件事三分钟,为了尽快的回复老板完成了任务,这个时候就可以使用影分身术来帮你完成不同的任务,三个任务每个人只需要一分钟,这样老板就会很开心的继续压榨你
4、多线程的应用场景
消息推送、日志、短信通知
5、为啥要用多线程呢
提高程序效率,快速响应HTTP请求
6、多线程越开多些越好吗
7、多线程的切换概念
如果是单核CPU的状态,多线程执行是在高速切换中完成了,只不过再感官上察觉不到,所以并不是真正意义上的多线程执行
8、创建线程的方式有哪些
- 继承Thread
public class MyThread extends Thread{ public static void run(){ System.out.println(Thread.currentThread().getName()+"我的 子线程 测试"); } public static void main(String[] args){ System.out.println(""); MyThread thread = new MyThread(); thread.start(); } }
- 实现Runnable
- 实现Callable
- 通过线程池
9、守护线程
守护线程也叫精灵线程,和用户线程的区别就是生命周期随着主线的生命周期结束而结束,而用户线程不会,一般应用在GC
10、如何正确的停止线程
不要使用stop方法,因为会被停止的线程可能在未执行完
使用 interrupt() 方法
11、线程的生命周期
新建:刚new出来的时候
就绪:调用start()方法等待CPU分配执行资源的时候
阻塞:调用了wait()、sleep()等方法等导致线程停止的时候
运行:调用run()方法的时候
死亡:线程执行完毕,或调用停止线程等方法