线程的定义以及创建#
多线程#
进程:一个内存中正在运行的应用程序
线程:是最小的执行单元,一个进程中可以有多个线程。
并发:多个事件在同一时间段内发生。
并行:多个事件在同一时刻发生。
在这之前,接触的都是单线程,即一个线程结束后才开始另一个线程的执行;多个线程同时执行任务,叫多线程。
线程的创建#
创建线程需要继承Thread类
定义Thread类的子类,并且重写该类的run()方法,该run()的方法体就代表了线程需要完成的任务,因此run()方法也称为线程执行体。
创建Thread子类的类对象,即线程对象
调用线程对象的start()方法来启动线程。
Thread类常用方法#
- public Thread();
- public Thread(String name);
- public String getName();获取当前线程的名称。
- public void start();启动线程,开始执行线程中的run方法
- public void run();线程要执行的任务在此处定义
- public static Thread currentThread();返回正在执行的线程对象的引用。
public class Demo2 extends Thread {
public static void main(String[] args) {
Demo2 demo2 = new Demo2(); //实现线程
demo2.start(); //start()调用启动线程
}
public void run(){ //重写线程run方法
for(int Time = 0; Time <= 20; Time ++) {
System.out.print(Time + " ");
}
}
}输出结果:

线程的创建,实现Runnable接口#
因为在java中只支持单继承,一个类如果继承了Thread类,就没办法继承别的类,因此可以通过去实现一个接口,创建线程对象,这样该类就可以去继承别的类了。
定义Runnable接口的实现类,并重写该接口的run()方法,该run()的方法体就代表了线程需要完成的任务,因此run()方法也称为线程执行体。
创建Runnable实现类的类对象,并以此类对象作为Thread的参数来创建Thread对象,该对象才是真正的线程对象。
3.调用线程对象的start()方法启动线程。
class TestThread implements Runnable{ //实现Runnable
@Override
public void run() {
for(int Time = 0; Time <= 10; Time ++) {
System.out.print(Time + " ");
}
}
}
public class Demo2 { //运行测试
public static void main(String[] args) {
TestThread testThread = new TestThread();
Thread thread = new Thread(testThread);
thread.start();
}
}输出结果:

