首页 > 其他分享 >线程使用例子

线程使用例子

时间:2023-04-26 11:35:43浏览次数:44  
标签:java executor 使用 例子 线程 new import public

点击查看代码
package com.ly.fn.biz.ht.esign.expand.core.config;

import com.google.common.base.Joiner;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;

public class AsyncConfigTest {
    public static void main(String[] args) {
        Executor executor = new AsyncConfig().asyncServiceExecutor();
        for (int i = 0; i < 10; i++) {
            final int index = i;
            executor.execute(new Runnable() {
                @Override
                public void run() {
                    if (index == 5 || index == 8) {
                        System.out.println(1 / 0);
                    }
                    System.out.println(">>>>>>>>>>>>>>" + index);
                }
            });
        }
        List<String> list = new ArrayList<>();
        list.add("444");
        list.add("333");
        System.out.println(Joiner.on(",").join(list));
        DecimalFormat df = new DecimalFormat("#,###.00");
        System.out.println("7321456987.258 =》" + df.format(new BigDecimal("0")));
    }


//   public static BigDecimal formatNumber(String str){
//        NumberFormat nf=NumberFormat.getPercentInstance();
//        try {
//            Number m=nf.parse(str);
//            return new BigDecimal(m.toString());
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }
//        return new BigDecimal(0);
//    }
}

点击查看代码
package com.ly.fn.biz.ht.esign.expand.core.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;

@Configuration
@EnableAsync
@Slf4j
public class AsyncConfig {

    @Bean
    public Executor asyncServiceExecutor() {
        log.info("开始创建线程池");
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        //配置核心线程数
        executor.setCorePoolSize(5);
        //配置最大线程数
        executor.setMaxPoolSize(5);
        //配置队列大小
        executor.setQueueCapacity(100);
        //配置线程池中的线程的名称前缀
        executor.setThreadNamePrefix("async-data-");
        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
        // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        //执行初始化
        executor.initialize();
        return executor;
    }

}

标签:java,executor,使用,例子,线程,new,import,public
From: https://www.cnblogs.com/codeLearn/p/17355101.html

相关文章

  • djangorestframework-jwt使用
    服务端配置安装第三方库pipinstalldjangorestframework-jwt在settings.py中配置JWT##可以在这里配置全局的认证,也可以在视图中单独配置。REST_FRAMEWORK={'DEFAULT_AUTHENTICATION_CLASSES':['rest_framework_jwt.authentication.JSONWebTokenAuthentic......
  • python 使用selenium 不开启浏览器
    selenium不启动浏览器模式打开浏览器再启动会浪费时间,对爬虫的性能也是个影响,还有一种就是不打开浏览器。如下参数是针对chrome的全局参数,不能自定义参数。fromseleniumimportwebdriver#还有一些其他的参数'''#添加UAoptions.add_argument('user-agent="MQQBrowser/26......
  • 关于使用tcpdump命令抓包时网络接口的查询与指定
    第一步:首先可以通过tcpdump命令的--list-interfaces选项,列出系统中的所有网络接口(这个与ipaddr列出的还有略有点点差异)-D--list-interfacesPrintthelistofthenetworkinterfacesavailableonthesystemandonwhichtcpdumpcancapturepackets.......
  • 使用pycuda替换字符串,使用cuda替换字符串
    写一个python的cuda程序,实现字符串列表的字符串替换,把所有的123替换成xinyuuliu 以下是一个简单的PythonCUDA代码示例,用于实现字符串列表的字符串替换。它使用了NVIDIACUDA编程模型的一些基本概念和语法。#导入必要的模块importpycuda.autoinitimportpycuda.drive......
  • JEECG使用反向代理 积木报表无法正常使用的解决方法
    发现JEECG反向代理开启后  重设了Host头,导致积木框架的数据接口url拼接异常Nginx配置增加:#通过反向代理访问积木报表,Jeecg框架内的菜单配置需要写成绝对路径:http://localhost:3000/jeecg-boot/jmreport/list?token=${token}location^~/jeecg-boot/jmreport/{#p......
  • vue3中useRouter和useRoute的使用
    vue3路由新玩法useRoute和useRouter详解原文链接原来的vue2路由是通过this.$route和this.$router来控制的。现在vue3有所变化,useRoute相当于以前的this.$route,而useRouter相当于this.$router一、useRouter手动控制路由变化import{useRouter}from'vue-router'exportdef......
  • uniapp页面中的按钮使用分享功能
    https://www.codenong.com/cs109827730/......
  • fork-join 入门例子
    一介绍Fork/Join模式有自己的适用范围。如果一个应用能被分解成多个子任务,并且组合多个子任务的结果就能够获得最终的答案,那么这个应用就适合用Fork/Join模式来解决。图1给出了一个Fork/Join模式的示意图,位于图上部的Task依赖于位于其下的Task的执行,只有当所有的子任务......
  • golang 使用 net包实现 tcp server 示例
    之前用到golang进行网络编程时,主要就是使用net/http和web框架gin,这些网络库的底层其实也还是用的标准库自带的net包,很多是对路由或者其他做封装,而且golang本身的长处之一也是网络IO的处理,这也得益于其底层的IO模型,今天我们分享的是基于TCPserver/client的简单实现,后......
  • Python | raise的使用
    当程序出现错误,Python会自动引发异常,Python允许我们在程序中手动设置异常,使用raise语句即可。一旦执行了raise语句,raise后面的语句将不能执行。我们从来都是想方设法地让程序正常运行,为什么还要手动设置异常呢?首先要分清楚程序发生异常和程序执行错误,它们完全是两码事,程序由于......