java 简单线程

6 篇文章 0 订阅
2 篇文章 0 订阅

一:单线程

  1.在某方法里需要调用异步方法
   new Thread(() -> {
       // 业务
    }).start();
  2.整个方法都是异常
  	在方法头加注解
    @Async
  	@Override
  	public void test(){
  		
  	}
  3.TaskExecutor 
    @Autowired
  	private TaskExecutor taskExecutor;

	taskExecutor.execute(
                          new Runnable() {
                              @Override
                              public void run() {
                                  try {
                                      //业务
                                     
                                  } catch (Exception e) {
                                      e.printStackTrace();
                                  }
                              }
                          }
                  );
      

二:线程池

  public static ScheduledThreadPoolExecutor pool = new ScheduledThreadPoolExecutor(10);
  // 延迟15分钟
  pool.schedule( () -> {
                                  // 业务
                              }, 15, TimeUnit.MINUTES
                      );

三:线程返回

// 此处演示多个异步线程统一等返回结果
 List<Future<Boolean>> futures = new ArrayList<>();
 for (int i=0;i<10;i++) {
       // 分线程去执行-执行10次addRelation方法
       Future<Boolean> future = addRelation(i);
       futures.add(future);
  }
  //获取任务执行结果
  boolean ok = true; // 最终结果(默认是成功,如果10次有一次或一次以上为false都是失败)
  if (futures.size() > 0) {
      try {
          while (true) {
              int i = 0;
              for (Future<Boolean> future : futures) {
                  if (future.isDone()) {
                      ++i;
                      boolean isOK = future.get();  // future.get() 是返回值,可以定义其他类型
                      if (!isOK) ok = false;
                  }
              }
              if (i == futures.size()) {
                  break;
              }
          }
      } catch (Exception e) {
          ok = false;
      }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值