public class Demo09 {
private static int a = -1;
public static void main(String[] args) {
class Back{
public void say(int a){
System.err.println("生成的值是.......:"+a);
}
};
Back back = new Back();
ExecutorService es = Executors.newCachedThreadPool();
es.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(100 * new Random().nextInt(10));
} catch (InterruptedException e) {
e.printStackTrace();
}
a = new Random().nextInt(100);
System.err.println("生成的值是:"+a);
back.say(a);
}
});
}
}
--
public class Demo09 {
private static int a = -1;
public static void main(String[] args) throws Exception {
ExecutorService es = Executors.newCachedThreadPool();
Future<Integer> fu = es.submit(new Callable<Integer>() {// 提交一个有返回值的任务
@Override
public Integer call() throws Exception {
try {
Thread.sleep(1000 * new Random().nextInt(10));
} catch (InterruptedException e) {
e.printStackTrace();
}
a = new Random().nextInt(100);
System.err.println("生成的值是:" + a);
return a;
}
});
es.execute(new Runnable() {
@Override
public void run() {
int a = -100;
try {
a = fu.get();
} catch (Exception e) {
e.printStackTrace();
} // 等待阻塞的方式等待返回值,直接获取到返回值以后才执行
System.err.println("a is:" + a);
}
});
es.shutdown();
System.err.println("主线程执行完成了。。。");
}
}