操作之前先来了解什么是线程 线程,又称轻量级线程(light weight process). 线程是进程中的执行路径,也是cup的基本调度单位 若一个线程可同一时间执行多个线程,就是多线程支持, 一个进程由一个或者有多个线程组成,彼此之间完成不同的工作, 同时执行,被称为多线程
Java如何创建多线程
Java提供了三种方式
第一种:继承Thread类
第二种:实现Runnable接口
第三种:实现Callable接口
继承Thread类的语法
//创建一个线程类
public class MyThread extends Thread{
//run表示线程启动后执行的业务代码
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("~~~~~~~~~~~~~~~~~~"+i);
}
}
}
public class Test01 {
public static void main(String[] args) {
//创建线程对象
MyThread my=new MyThread();
//开启线程--硬件底层调用线程的run方法
my.start();
for (int i = 0; i < 20; i++) {
System.out.println("main~~~~~~~~~~~~~"+i);
}
}
}
设置获取线程名称
//创建一个线程类
public class MyThread extends Thread{
//run表示线程启动后执行的业务代码
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Therad.currentTheread().getName()"~~~~~~~~~~~~~~~~~~"+i);
}
}
}
上面最后一段代码中的 Therad.currentTheread().getName 是用来获取线程对象
第二种:实现Runnable接口
public class MyRunnable implements Runnable{
@Override
public void run() {
//线程执行时的任务代码
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+"~~~~~~~~~~~~~"+i);
}
}
}
public class Test01 {
public static void main(String[] args) {
//创建线程任务对象
MyRunnable my=new MyRunnable();
//创建线程对象
Thread t1=new Thread(my,"线程名");
t1.start();
for (int i = 0; i < 20; i++) {
System.out.println("main+++++++++++++++++++"+i);
}
}
}
第三种Callable接口
public class MyCallable implements Callable<Double> {
//call表示线程的任务代码.
@Override
public Double call() throws Exception {
double sum=0;
for (int i = 0; i <=100 ; i++) {
sum+=i;
}
return sum;
}
}
public class Test01 { public static void main(String[] args) throws ExecutionException, InterruptedException { MyCallable my=new MyCallable(); //把call对象封装到FutureTask类中 而且任务执行的结果也在FutureTask FutureTask task=new FutureTask(my); Thread t=new Thread(task); t.start(); Object o = task.get(); System.out.println(o); } }