首页 > 编程语言 >java 简单使用线程池

java 简单使用线程池

时间:2022-11-03 10:36:17浏览次数:34  
标签:Object return 简单 private taskQueue 线程 new java


定义一个ThreadPoolExecutor

private final BlockingQueue<Runnable> taskQueue = new LinkedBlockingDeque<>();
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(10,
10,
0,
TimeUnit.SECONDS,
taskQueue);

需要的参数可以按照自己的需求进行配置
然后我们来创建一个新的线程类,

private class DemoTask implements Runnable{

private List<String> x;
private Object y;
private Long z;

private ScanTask(List<String> x,
Object y,
Long z){
this.x = x;
this.y = y;
this.z = z;
}


private synchronized boolean checkCache(){
if (onCache.contains(z)){
return true;
}
return false;
}

@Override
public void run() {
if(checkCache){
return;
}
...
}
}

使用的时候,只需要:

executor.execute(new DemoTask(x, y, z));

这样就使用了线程池。同时,如果需要做一个缓存来控制多线程情况下只有一个线程执行了某个操作,可以使用

private ConcurrentSkipListSet<Long> onCache = new ConcurrentSkipListSet<>();

在使用contain方法的时候,需要加线程同步


标签:Object,return,简单,private,taskQueue,线程,new,java
From: https://blog.51cto.com/u_14196886/5819066

相关文章

  • Java基础Day6-面向对象
    一、面向对象编程(Object-OrientedProgramming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。从认识论的角度:先有对象后有类。对象是具体的......
  • springboot javax.servlet.Filter使用
    请求拦截器优点:1、拦截非法请求重定向2、验证用户token下面是demo程序,有问题的可以在评论区留言@WebFilter(filterName="authenticationFilter",urlPatterns={"/user/*......
  • 用 java 简单实现 rpc 通信
    代码不一定能够运行起来,这是在之前的代码中抽象出来的。这里只是说说基本的思路定义消息:packagecom.xiaoyao.game.net.framework.codec;importcom.google.protobuf.Messa......
  • 力扣1668(java&python)-最大重复子字符串(简单)
    题目:给你一个字符串 sequence ,如果字符串word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word的重复值为k。单词word 的最大重复值......
  • Java高级架构师-Java基础(集合)
    Java高级架构师-Java基础(集合)集合框架Java.util.CollectionCollection接口中的共性功能1.添加boobleanadd(Objectobj);往该集合中添加元素,一次添加一个bo......
  • Java中“成员变量,局部变量,静态变量”三者区别说明
    转自:http://java265.com/JavaCourse/202111/1728.html下文笔者讲述java中成员变量,局部变量,静态变量的不同之处,如下所示: 成员变量局部变量静态变量定义位置......
  • java命令行如何编译运行带package(包)的程序
    先用javac编译,带参数-djavac-d.****.java 然后,在当前目录下(不要到****子目录),运行java即可。java***.*****如:javac-d.FuctionDemo2.javajavacom.Fuct......
  • 开发语言介绍——Java
    开发语言介绍——Java一、基本说明1.Java语法的特点关键字都是小写字母标识符没有长度限制使用Unicode编码Java是一种强类型的语言,变量在编译之前一定要被显示的声明......
  • Docker安装Oracle(简单,好用)
    Docker安装Oracle(以Oracle_11g为例)拉取oracle_11g镜像:dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行容器1dockerrun-d-p1521:1521-......
  • python汉字转拼音,中英文单词互译,中英文简单句子翻译
    由于在学java,需要定义变量,拼音不好,英文也差,定义变量成了头痛的事,所以写这个脚本#!/usr/bin/python3#pip升级不了时可以python3get-pip.py#需要安装pinyin包pi......