多线程的实现方法二
1.实现Runnable接口,实现里面的run方法,这个实现类就相当于用来创建我们线程的任务。
2.创建多线程任务,创建线程。
3.启动线程
案例二
实现Runnable接口并实现run方法。由于getName()方法是Thread类里面的方法,所以在我们的实现类中无法直接调用getName()方法来获得线程的名字,我们可以先获取当前线程的对象然后用线程的对象来获取线程的名字。
public class MyRun implements Runnable{
@Override
public void run() {
Thread t = Thread.currentThread();
for (int i = 0; i < 10; i++) {
System.out.println(t.getName() + "开飞机");
}
}
}
创建线程任务,创建线程,启动线程。
public class Demo {
public static void main(String[] args) {
//创建了多线程的任务
MyRun m = new MyRun();
//创建线程并将线程的任务传入进去
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
t1.setName("线程1");
t2.setName("线程2");
//启动线程
t1.start();
}
}
多线程的实现方法三
1.首先创建一个实现类来实现Callable接口,并实现call()方法。
2.创建多线程要执行的任务。即Callable接口的实现类对象。
3.创建FutureTask对象负责管理多线程的运行结果。
4.创建线程
5.启动线程
案例三
import java.util.concurrent.Callable;
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += i;
}
return sum;
}
}
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Demo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//创建多线程要执行的任务
MyCallable mc = new MyCallable();
//创建一个负责管理多线程运行结果的对象
FutureTask<Integer> ft = new FutureTask<>(mc);
//创建线程
Thread t = new Thread(ft);
//启动线程
t.start();
//拿到线程运行的结果
int result = ft.get();
System.out.println(result);
}
}