广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如何使用Java执行程序完成服务?_北大青鸟IT学校

作者:邓华发布时间:2021-05-12分类:Java技术浏览:778


导读:如何使用Java执行程序完成服务?最近惠州北大青鸟很多学员都在问这个问题,那么下面惠州北大青鸟学术部老师给大家解答一下这个问题。

如何使用Java执行程序完成服务?最近惠州北大青鸟很多学员都在问这个问题,那么下面惠州北大青鸟学术部老师给大家解答一下这个问题。

要将提交的任务的结果提供给执行程序,请使用执行程序的完成服务。

它由CompletionService接口的一个实例表示。

import java.util.concurrent.Callable;import java.util.concurrent.ExecutorCompletionService;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;class MyResult {  private int taskId;  private int result;  public MyResult(int taskId, int result) {
   this.taskId = taskId;
   this.result = result;
 }  public int getTaskId() {    return taskId;
 }  public int getResult() {    return result;
 }  public String toString() {    return "Task  Name: Task  #" + taskId + ", Task  Result:" + result
       + "  seconds";
 }
}class SleepingTask implements Callable<MyResult> {  private int taskId;  private int loopCounter;  public SleepingTask(int taskId, int loopCounter) {
   this.taskId = taskId;
   this.loopCounter = loopCounter;
 }  public MyResult call() throws InterruptedException {    int totalSleepTime = 0;    for (int i = 1; i <= loopCounter; i++) {      try {
       System.out.println("Task #" + this.taskId + "  - Iteration #"
           + i);
       Thread.sleep(1000);
       totalSleepTime = totalSleepTime + 1000;
     } catch (InterruptedException e) {
       System.out.println("Task #" + this.taskId
           + "  has  been  interupted.");        throw e;
     }
   }    return new MyResult(taskId, totalSleepTime);
 }
}public class Main {  public static void main(String[] args) throws Exception {    // Get an executor with three threads in its thread pool    ExecutorService exec = Executors.newFixedThreadPool(3);    // Completed task returns an object of the TaskResult class    ExecutorCompletionService<MyResult> completionService = new ExecutorCompletionService<>(
       exec);    for (int i = 1; i <= 5; i++) {
     SleepingTask task = new SleepingTask(i, 3);
     completionService.submit(task);
   }    for (int i = 1; i <= 5; i++) {
     Future<MyResult> completedTask = completionService.take();
     MyResult result = completedTask.get();
     System.out.println("Completed a  task - " + result);
   }
   exec.shutdown();
 }
}

上面的代码生成以下结果。

Task #3 - Iteration #1

Task #2 - Iteration #1

Task #1 - Iteration #1

Task #3 - Iteration #2

Task #2 - Iteration #2

Task #1 - Iteration #2

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java12.jpg

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表