Java多线程
程序、进程、线程概念
程序:指令和数据的有序集合(静态)
进程:执行程序的一次过程,系统资源分配的单位(动态)*至少一个线程( main、gc)
线程:cpu调度和执行的单位
多线程的三种创建方式
1、继承Thread类 重写run方法,调用start开启线程
2、实现Runnable接口 重写run方法,执行线程需要丢入runnable的实现类,调用start方法
3、实现Callable接口 (可以定义返回类型,可以返回异常)
注意:线程开启不一定立即执行,由cpu调度执行。
继承Thread类和实现Runnable的区别:
静态代理模式
Lambda表达式
线程状态
优先级低只是意识着获得调度的概率低。并不是优先级低就不会被调用了,这都是看CPU的调度。
example:用户线程(main)、守护线程(gc)