java创建线程的三种方法及匿名类创建线程
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class Threads {
public static void main(String[] args) {
}
private static void demo4() {
new Thread() {
@Override
public void run() {
for(int i = 0; i < 100; i++) {
System.out.println("aaa");
}
}
}.start();
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 100; i++) {
System.out.println("bbbbbbbbbbbbbbbb");
}
}
}).start();
}
private static void demo3() {
Mythreads3 mt3 = new Mythreads3();
FutureTask<Integer> result = new FutureTask<>(mt3);
new Thread(result).start();
for(int i = 0; i < 100; i++) {
System.out.println("bbbbbbbbbbbbbbbbbbb");
}
}
private static void demo2() {
Mythreads2 mt2 = new Mythreads2();
Thread t = new Thread(mt2);
t.start();
for(int i = 0; i < 100; i++) {
System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbb");
}
}
private static void demo1() {
Mythreads mt = new Mythreads();
mt.start();
for(int i = 0; i < 100; i++) {
System.out.println("bbbbbbbbbbbbbbbbbbbbb");
}
}
}
class Mythreads extends Thread {
@Override
public void run() {
for(int i = 0; i < 100; i++) {
System.out.println("aaaaaaa");
}
}
}
class Mythreads2 implements Runnable {
@Override
public void run() {
for(int i = 0; i < 100; i++) {
System.out.println("aaa");
}
}
}
class Mythreads3 implements Callable {
@Override
public Object call() throws Exception {
for(int i = 0; i < 100; i++) {
System.out.println("aaaaaaa");
}
return 1;
}
}