public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println(Thread.currentThread().getName() + "---" + i);
}
}
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "---" + i);
}
}
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println(Thread.currentThread().getName() + "---" + i);
}
}
}
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable, "myRunnable");
thread.start();
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "---" + i);
}
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
ExecutorService singleThreadPool = Executors.newSingleThreadExecutor();
ExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "--" + i);
}
}
};
fixedThreadPool.submit(runnable);
fixedThreadPool.shutdown();
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i < 101; i++) {
sum += i;
Thread.sleep(100);
}
return sum;
}
}
MyCallable myCallable = new MyCallable();
FutureTask<Integer> task = new FutureTask(myCallable);
Thread thread = new Thread(task);
thread.start();
try {
Integer sum = task.get();
System.out.println(sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i < 101; i++) {
sum += i;
Thread.sleep(100);
}
return sum;
}
}
//创建一个线程数为3的固定大小线程池
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
MyCallable myCallable = new MyCallable();
Future<Integer> future = fixedThreadPool.submit(myCallable);
Future<Integer> future2 = fixedThreadPool.submit(myCallable);
try {
int sum = future.get();
int sum2 = future2.get();
System.out.println(sum + sum2);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
fixedThreadPool.shutdown();
原文:https://www.cnblogs.com/wind-ranger/p/14719419.html