1、进程与线程:
(1)进程是一个程序执行的动态过程,是并发的一个基本单位
(2)线程是一个并发的基本单位
2、java多线程实现的俩种方式:
(1)继承java.lang 包中的Thread类:然后覆写里面的run()方法,通过调用start()方 法启动多线程
(2)实现Runnable接口:Runnable接口中只定义了一个public run()抽象方法,
实例化Thread类的对象,通过该对象调用start()方法启动多线程
3、Thread类 和 Runnable接口 的区别:
使用Thread类操作多线程的时候无法达到资源共享,而使用Runnable接口操作多线程
的时候可以达到资源共享。
4、多线程的状态:
(1)创建状态:通过Thread类创建一个多线程的对象 Thread t=new Thread() ;
(2)就绪状态:调用start()方法,等待cpu的运行
(3)运行状态:执行run()方法
(4)堵塞状态:暂时停止执行
(5)死亡状态:线程执行结束了,不再使用
5、注意:
(1)实际上多线程调用start()方法时,不是立刻启动的,而是要等待cpu的调度
(2)Thread类也是Runnable接口的子类,使用了代理设计的模式完成
6、进程和线程的区别:
(1)线程是建立在进程的基础上划分的
(2)线程消失了,进程不一定会消失;但是进程消失了,线程一定会消失
7、使用同步问题的使用:
要想解决资源共享的问题,可以使用同步代码块或者同步方法俩种方式
8、同步代码块:
(1)使用synchronized关键字修饰的代码块,称为同步代码块
(2)语法格式: synchronized (同步的对象){ 需要同步的代码 }
9、同步方法:
(1)定义格式: synchronized 方法返回值 方法名称(参数列表){ }