多线程
多线程
进程:正在运行的程序,是系统进行资源分配和调用对的独立单位,每一个进程都有它的内存空间和系统资源。可以理解为,一个正在运行的程序。
线程:是进程中的单个顺序控制流,是一条执行路径,一个进程如果只有一条执行路径,则称为单线程程序;一个进程如果有多条执行路径,则称为多线程程序。
如何创建一个线程对象?
1、自定义线程类继承Thread
类,重写run
方法
2、自定义线程类实现Runable
接口,实现run
方法
如何启动一个线程?
调用start()
方法启动
Thread无参构造方法
thread() 分配一个新的 Thread对象
class MyThread1 extends Thread{
MyThread1() {
}
MyThread1(String name){
super(name);
}
@Override
public void run() {
//将来线程启动后需要执行的逻辑
super.run();
}
}
注意:
1、启动一个线程的时候,若直接调用run
方法,仅仅是普通的对象调用方法,按照自上而下的顺序执行,底层不会额外的创建一个线程再执行
2、从执行结果上来看,java线程之间是抢占式执行的,谁先抢到cpu执行权谁就先执行
3、每次运行的结果顺序不可预测,是完全随机的
4、每个线程都有优先权,具有较高优先级的线程优先于优先级别低的线程执行
Thread类中的成员方法:
1、public final String getName()
获取线程对象的名字
2、设置线程对象名字的方式:
a.通过父类的有参构造方法,在创建线程对象的时候设置名字
b.线程对象调用setName(String name)
方法,给线程对象设置名字
3、获取进程的等级
getPriority()
默认优先级是5
4、设置进程优先级,setPriority(int i)
,在启动之前设置 [1,10]
注意不是优先级高的一定先执行,只是可能性变高了。
public class ThreadDemo1 {
public static void main(String[] args) {
//创建一个自己的线程对象
MyThread1 m1 = new MyThread1();
m1.setName("
标签:run,Thread,void,基础知识,m1,线程,多线程,public
From: https://www.cnblogs.com/lucky-lack0-0/p/18368201