线程的状态
方式一:
public class Thread1 extends Thread {
@Override
public void run() {
synchronized (this) {
for (int i = 0; i < 100; i++) {
System.out.println(getName() + "===" + i);
}
}
}
}
Thread1 thread1 = new Thread1();
thread1.start();
方式二:
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
}
}
MyRunnable myRunnable = new MyRunnable();
new Thread(myRunnable).start();
使用这个构造函数来完成
public Thread(Runnable var1) {
this.init((ThreadGroup)null, var1, "Thread-" + nextThreadNum(), 0L);
}
方式三:
public class MyCallable implements Callable<Integer> {
private int sum;
@Override
public Integer call() throws Exception {
for (int i = 0; i < 100; i++) {
System.out.println(i);
sum += i;
}
return sum;
}
}
MyCallable myCallable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask(myCallable);
new Thread(futureTask).start();
try {
Integer o = futureTask.get();
System.out.println(o);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
使用该构造函数完成
public FutureTask(Callable<V> var1) {
if (var1 == null) {
throw new NullPointerException();
} else {
this.callable = var1;
this.state = 0;
}
}
public Thread(Runnable var1) {
this.init((ThreadGroup)null, var1, "Thread-" + nextThreadNum(), 0L);
}
方式四:
后续补充。。。