前言
复习一下JUC的相关知识。
一、线程是什么?
线程的官方定义是这样的:
线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
按我的理解来说,线程就是能够独立运行程序的一条路。
二、创建线程的方式
/**
* 1、继承Thread
*/
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("Hello MyThread!");
}
}
/**
* 2、实现Runnable
*/
public class MyRun implements Runnable {
@Override
public void run() {
System.out.println("Hello MyRun!");
}
}
/**
* 3、实现Callable接口,构建FutureTask
*/
public class MyCall implements Callable<String> {
@Override
public String call() throws Exception {
System.out.println("Hello MyCall!");
return "Hello MyCall!";
}
}
new Thread(new FutureTask<>(new MyCall())).start();