package cn.edu.Lab;
class MyThread extends Thread {
public void run() {//重写run方法
System.out.println(getName() + "Hello World!");
}
}
public class Day3 {
public static void main(String[] args) {
MyThread t = new MyThread();//设置一个线程
t.setName("初始线程");//为线程命名
t.start();//线程!启动~~
//haha,小小地皮一下
}
}
方式二:利用Runnable接口实现
package cn.edu.Lab;
class MyTasks implements Runnable {
public void run() {//重写run方法
/*Thread t = Thread.currentThread();
System.out.println(t.getName() + "Hello World!");*/
System.out.println(Thread.currentThread().getName() + "Hello World!");
}
}
public class Day3 {
public static void main(String[] args) {
MyTasks task = new MyTasks();//创建一个任务
Thread t = new Thread(task);//创建一个进程
t.setName("初始线程");//为线程命名
t.start();//线程!启动~~
//haha,小小地皮一下
}
}
方式三:利用Callable接口实现
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
class MyTasks implements Callable<Integer> {
public Integer call() throws Exception{//重写call方法
int sum = 0;
for(int i = 1; i < 6;i++) sum += i;
return sum;
}
}
public class Day3 {
public static void main(String[] args) throws InterruptedException, ExecutionException {
MyTasks task = new MyTasks();//创建一个说明
FutureTask<Integer> ft = new FutureTask<>(task);//创建一个任务管理器
Thread t = new Thread(ft);//创建一个进程
t.setName("初始线程");//为线程命名
t.start();//线程!启动~~
//haha,小小地皮一下
Integer result = ft.get();//获取进程运行结果
System.out.print(result);
}
}