1.并发与并行
并发(JAVA):指两个或多个事件在同一时间段发生。
并行:指两个或多个事件在同一时刻发生(同时发生)。
2. 线程与进程
进程:有独立的内存空间,是系统运行程序的基本单位,但运行的是线程
线程:进程内部的执行单元,一个进程至少有一个线程或多个线程
一个程序运行至少有一个进程,一个进程中包含多个线程。
线程调度:所有线程轮流使用cpu,平均占用时间
抢占式调度(JAVA):优先级高的线程优先使用cpu,如果相同,则随机使用
4.3 创建线程类Thread
1.定义一个类继承Thread,重写其run()方法。
2. 创建Thread子类的实例(线程对象)。
3.调用线程对象start()方法启动该线程
java.lang.Thread
类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是 完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。 Java中通过继承Thread类来创建并启动多线程的步骤如下:
- 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把 run()方法称为线程执行体。
- 创建Thread子类的实例,即创建了线程对象 3. 调用线程对象的start()方法来启动该线程 2. 创建Thread子类的实例,即创建了线程对象 3. 调用线程对象的start()方法来启动该线程
//1.创建一个Thread类的子类
public class MyThread extends Thread{
// 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("run:" + i);
}
}}
public class Demo01Thread {
public static void main(String[] args) {
//3.创建Thread类的子类对象
MyThread mt = new MyThread();
//4.调用Thread类中的方法start方法,开启新的线程,执行run方法
mt.start();
for (int i = 0; i < 20; i++) {
System.out.println("main:" + i);
}
}
}
Thread类
构造方法
public Thread():分配一个新的线程对象。
public Thread(String name):分配一个指定名字的线程对象
public Thread(Runnable target):分配一个指定目标的新的线程对象
public Thread(Runnable target,String name):分配一个指定目标的新的线程对象并指定名字
1
2
3
4
常用方法
public String getName():获取线程名称
public void start():执行线程
public void run():线程的任务自此处定义代码
public static void sleep(long mills):让线程暂停执行指定毫秒
public static Thread currentThread():返回正在执行的线程对象