创建多线程的方式四: 实现Callable接口与使用线程池方式
.
实现Callable接口
class NumThread implements Callable{
@Override
public Object
call() throws Exception
{
int sum
= 0;
for (int i
= 0; i
<= 100; i
++) {
if (i
% 2 ==0){
System
.out
.println(i
);
sum
+= i
;
}
}
return sum
;
}
}
public class ThreadNew {
public static void main(String
[] args
) {
NumThread numThread
= new NumThread();
FutureTask f
= new FutureTask<Integer>(numThread
);
new Thread(f
).start();
Object o
= null
;
try {
o
= f
.get();
System
.out
.println("总合为: "+ o
);
} catch (InterruptedException e
) {
e
.printStackTrace();
} catch (ExecutionException e
) {
e
.printStackTrace();
}
}
}
.
使用线程池方式
class NumberThread implements Runnable{
@Override
public void run() {
for (int i
= 0; i
<= 100; i
++) {
if (i
% 2 ==0){
System
.out
.println(Thread
.currentThread().getName()+": "+ i
);
}
}
}
}
public class ThreadPool {
public static void main(String
[] args
) {
ExecutorService executorService
= Executors
.newFixedThreadPool(10);
executorService
.execute(new NumberThread());
executorService
.execute(new NumberThread1());
executorService
.shutdown();
}
}
class NumberThread1 implements Runnable{
@Override
public void run() {
for (int i
= 0; i
<= 100; i
++) {
if (i
% 2 !=0){
System
.out
.println(Thread
.currentThread().getName()+": "+ i
);
}
}
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-43652.html