JAVA_多线程的实现方式
线程的状态
方式一:
public class Thread1 extends Thread {@Overridepublic 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 {@Overridepublic 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;@Overridepublic 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);}
方式四:
后续补充。。。