多线程编程
2018-07-08 本文已影响0人
东风谷123Liter
-
JAVA VM 启动的时候会有一个进程java.exe
-
该进程至少有一个线程负责java程序的运行
-
而且这个线程的代码存在于main方法中
-
该线程称之为“主线程”
-
扩展:其实更多细节说明jvm,启动不止一个线程,还有垃圾回收机制线程
Thread类在java.lang类中,可以查找API文档看其用法。
- 创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。
- 定义类继承Thread类
- 重写run()方法
- 创建并启动线程(start()方法)
- 注意进程运行时主线程结束进程不一定结束,要当所有线程都结束时进程才结束
- 多核CPU内存受限,
- 创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。
- 定义实现Runnable接口
- 覆盖Runnable接口中的run方法
- 将线程要运行的代码存放在run方法中
- 通过Thread类建立线程对象
- 将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
- 因为自定义run方法所属对象是Runnable接口的子类对象,所以要让线程去指定指定对象的run方法,就必须明确该run方法的所属对象。
- 调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法。
- 实现方式和集成方式有什么区别:
- 实现方式:
- 避免了单集成局限性,一个子类可继承多个接口类。
- 集成Thread类:线程代码存放在Thread子类run方法中;
- Runnable:存放在Runnable接口子类的run 方法中。
- 实现方式: