1继承Thread类的方式进行实现
//多线程的第一种启动方式
Thread t1 = new mythread();
Thread t2 = new mythread();
t1.setName("t1");
t2.setName("t2");
t1.start();
t2.start();
public class mythread extends Thread{
@Override
public void run() {
for (int i = 0;i < 100;i++){
System.out.println(getName() + "niubi");
}
}
2,实现Runnable接口的方式实现
public class mythread implements Runnable{
@Override
public void run() {
for (int i = 0;i < 100;i++){
Thread t = Thread.currentThread();
System.out.println(t.getName() + "niubi");
}
}
}
public static void main(String[] args) {
mythread m = new mythread();
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
t1.setName("3");
t2.setName("4");
t1.start();
t2.start();
}
3,利用Callable接口和Future接口(管理返回值)
public class mycallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i < 100; i++) {
sum = sum + i;
}
return sum;
}
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
mycallable m = new mycallable();
FutureTask<Integer> f = new FutureTask<>(m);//管理多线程运行结果
Thread t = new Thread(f);
t.start();
Integer result = f.get();
System.out.println(result);
}