class ExecutorTest{
private static final Executor executor = Executors.newFixedThreadPool(100);
public void test() throws IOException{
ServerSocket serverSocket = new ServerSocket(80);
while(true){
Socket conn = serverSocket.accept();
try{
executor.execute(new Runnable() {
@Override
public void run() {
handle(conn);
}
});
}catch (NullPointerException e){
System.out.println("提交的任务为null");
e.printStackTrace();
}catch (RejectedExecutionException e){
System.out.println("提交的任务无法被Executor接受");
e.printStackTrace();
}
}
}
public void handle(Socket socket){
}
}
class ExecutorServiceTest{
private static final ExecutorService executorService = Executors.newFixedThreadPool(100);
public void test() throws IOException{
ServerSocket serverSocket = new ServerSocket(80);
while(!executorService.isShutdown()){
Socket conn = serverSocket.accept();
try {
executorService.execute(new Runnable() {
@Override
public void run() {
handle(conn);
}
});
}catch (NullPointerException e){
System.out.println("提交的任务为null");
e.printStackTrace();
}catch (RejectedExecutionException e){
if(!executorService.isShutdown()){
System.out.println("提交的任务无法被Executor接受");
e.printStackTrace();
}
}
}
}
public void stop(){
executorService.shutdown();
}
public void handle(Socket socket){
if(socket == null){
this.stop();
}else{
}
}
}
class CallableTest{
private static final ExecutorService executorService = Executors.newFixedThreadPool(100);
public void test(){
ArrayList<ArrayList<Integer>> lists = new ArrayList<>();
Future<ArrayList<ArrayList<Integer>>> future = null;
while(!executorService.isShutdown()) {
try {
future = executorService.submit(new Callable<ArrayList<ArrayList<Integer>>>() {
@Override
public ArrayList<ArrayList<Integer>> call() throws Exception {
return sortAll(lists);
}
});
}catch (NullPointerException e) {
System.out.println("提交的任务为null");
e.printStackTrace();
}catch (RejectedExecutionException e){
if(!executorService.isShutdown()){
System.out.println("提交的任务无法被Executor接受");
e.printStackTrace();
}
}
try {
ArrayList<ArrayList<Integer>> lists1 = future.get();
for(int i = 0;i < lists1.size();i++){
for(int j = 0;j < lists1.get(i).size();i++){
System.out.print(lists1.get(i).get(j)+" ");
}
System.out.println();
}
}catch (CancellationException e){
System.out.println("任务被取消");
e.printStackTrace();
}catch (ExecutionException e){
System.out.println("任务抛出了异常");
e.getCause().printStackTrace();
}catch (InterruptedException e){
Thread.currentThread().interrupt();
future.cancel(true);
}
}
}
public ArrayList<ArrayList<Integer>> sortAll(ArrayList<ArrayList<Integer>> lists){
return null;
}
}
class CompletionTest{
private static final ExecutorService executorService = Executors.newFixedThreadPool(100);
public void test(){
ArrayList<ArrayList<Integer>> lists = new ArrayList<>();
Future<ArrayList<Integer>> future = null;
while(!executorService.isShutdown()){
CompletionService<ArrayList<Integer>> completionService = new ExecutorCompletionService<>(executorService);
try {
for (int i = 0; i < lists.size(); i++) {
int finalI = i;
completionService.submit(new Callable<ArrayList<Integer>>() {
@Override
public ArrayList<Integer> call() throws Exception {
return sort(lists.get(finalI));
}
});
}
}catch (NullPointerException e){
e.printStackTrace();
}catch (RejectedExecutionException e){
e.printStackTrace();
}
for (int i = 0; i < lists.size(); i++) {
try {
future = completionService.take();
ArrayList<Integer> list = future.get();
for (int j = 0; j < list.size(); j++) {
System.out.print(list.get(j));
}
System.out.println();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (CancellationException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.getCause().printStackTrace();
}
}
}
}
public ArrayList<Integer> sort(ArrayList<Integer> list){
return null;
}
}