多线程:
进程:正在进行中的程序,负责在内存中分配,其中至少要有一个线程。
线程是进程中的一个独立的,程序的执行路径或控制单元。
例如:JVM启动时会有一个进程:java.exe,该进程中至少有一个线程负责java程序的执行,而且这个线程运行大代码存在于 main 方法中, 该线程就称为 “主线程”。
多线程提高效率。
自定义线程:继承法:对线程类(Thread)继承。 java已提供对线程这类事物的描述 ---->Thread类
步骤: 1、继承Thread类
2、覆盖其的run()方法,将自定义代码存在该函数中,让线程运行
3、调用线程的start()方法.:作用; @1,启动线程。@2,调用run 方法,执行代码。
例子:class Demo extends Thread
{
public void run()
{
System.out.println();
}
}
class Test
{
public static void main(String[] args)
{
Demo d=new Demo(); //创建了一个新线程
d.start(); //新线程启动 -----------> 此时程序中有两个线程,另一个是:主函数的主线程。
//知识点:这里如果只写 d.run(),那么此线程并没有启动,仍然只是一个线程。
}
}
知识点:多线程具有随机性,也就是多个线程在运行时互相抢夺cpu的运行资源。
为什么要覆盖run方法呢?
Thread类用来描述线程,该类就定义了一个功能,用于存储进程要运行的代码,该存储功能就是run方法,对于同一个run方法, 可以有多个线程,那么就有多个run方法块在运行被创立。
知识点:就是说Thread类中的run方法,用于存储运行的代码, 主线程的运行代码存放在main()中
线程在运行的过程中有几种状态:创建、运行、冻结、消亡、临时状态。
给线程的命名例子:
class Test extends Thread
{
Test(String name)
{
super(name); //给线程命名
}
publi void run()
{
运行代码块。
System.out.println(A代码);
}
}
A中:Thread.cuttentThread().getName(),用来获取当前线程的名称。