进程
- 进程是指可执行程序并存放在计算机存储器的一个指令序列,它是一个动态执行的过程
线程
- 线程是比进程还要小的运行单位,一个线程包含多个进程
线程的创建
- 创建一个Thread类,或者一个Thread子类的对象
- 创建一个实现Runnable接口的类的对象
Thread类
-
Thread是一个线程类,位于Java.lang下面
image.png
-
Thread常用方法
image.png
Runnable接口
- 只有一个run()方法
- Runnable是Java中用以实现线程的接口
- 任何实现线程功能的类都必须实现该接口
线程创建
通过继承Thread类的方式创建线程类,重写run()方法
线程的状态和生命周期
- 新建(New)
- 可运行(Runnable)
- 正在运行(Running)
- 阻塞(Blocked)
- 终止(Dead)
![](https://img.haomeiwen.com/i13909229/506aa19e82efe642.png)
- sleep() 休眠
- join() ,抢占资源,join()方法执行完以后再执行其它的线程
package com.example.javabase.xiancheng.join;
class Mythread extends Thread {
public void run() {
for (int i = 1; i <= 20; i++) {
System.out.println(getName() + "正在执行" + i + "次!");
}
}
}
public class JoinDemo {
public static void main(String[] args) {
Mythread mt = new Mythread();
mt.start();
try {
mt.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i <= 20; i++) {
System.out.println("主线程运行第" + i + "次!");
}
System.out.println("主线程运行结束!");
}
}
线程优先级
- Java为线程类提供了10个优先级
-
优先级可以用证书1-10表示,超过范围会抛出异常
-主线程默认优先级5
image.png
- 优先级常量
- MAX_PRIORITY:线程的最高优先级10
- MIN_PRIORITY:线程的最低优先级1
- NORM_PRIORITY:线程的默认优先级5
-
优先级相关方法
image.png
多线程运行的问题
- 各个线程是通过竞争CPU时间而获得运行机会的
- 各线程什么时候得到CPU时间,占用多久,是不可预测的
- 一个正在运行着的线程在什么地方被暂停是不确定的
网友评论