多线程
一、线程的概念
进程:是一个正在执行中的程序,每一个进程都有一个执行顺序是,该顺序是一个执行路径或者叫一个控制单元。
线程:是进程中的一个独立的控制单元,线程在控制着进程的执行。一个进程中至少有一个线程。
多线程的意义:宏观上使多个作业被同时执行,提高了效率。
二、线程的特性
其实在多线程状态下,某一时刻,cpu只能执行一个线程,所以只能有一个程序在运行(多核除外),cpu在多个线程
间做着快速切换动作,使多个线程看似在同时运行,也可以理解为多个线程在抢夺cpu的执行权,谁抢到,cpu就执行
谁,这是多线程的一个特性:随机性。
三、线程的创建方式
1.方式1:继承Thread类
(1)步骤
1> 定义一个类继承Thread类
2> 复写Thread类的run()方法
3> 建立对象,也就是创建了一个线程。调用start()方法启动线程
(2)为什么要继承Thread类并复写run()方法呢?
在java中,Thread类用于描述线程。
该类定义了一个功能用于存储线程要运行的代码,该功能就是run方()法。
线程调用start()方法启动线程后,JVM会自动调用该线程的run()方法。
(3)线程名
线程有默认的名称,格式:“Thread-编号” 编号从0开始
我们可以通过setname方法或者构造函数给线程自定义名称
例子:
package test;
class MyThread extends Thread
{
//覆盖run()方法
public void run()
{
System.out.println(Thread.currentThread().getName() + "--mythread");
}
}
public class Test9
{
/**
* @param args
*/
public static void main(String[] args)
{
//创建两个线程
MyThread mythread1 = new MyThread();
MyThread mythread2 = new MyThread();
//启动这两个线程
mythread1.start();
mythread2.start();
}
}
(1)步骤
1> 定义一个类实现Runnable接口
2> 在类中