韩国原生ip站群服务器,新手开店适合开什么店,企业oa管理系统,国外设计类网站有哪些最近遇到个问题#xff0c;因为业务需求将表中的五个字段改成了CLOB#xff0c;结果出现了sql异常#xff0c;修改方式就是将这五个字段单独拿出来查询#xff0c;结果导致了查询慢的问题#xff0c;由于sql年代久远#xff0c;涉及十几张表的关联#xff0c;加减乘除因为业务需求将表中的五个字段改成了CLOB结果出现了sql异常修改方式就是将这五个字段单独拿出来查询结果导致了查询慢的问题由于sql年代久远涉及十几张表的关联加减乘除group by等等实在不想大改。 后端JavaJDK8 前端Nexacro
因为数据量特别大甲方不同意分页查询只能尝试使用多线程来解决虽通过文心一言 来查询合适的代码来实现。结合阿里巴巴代码规约最终确认使用如下代码
public static ThreadPoolExecutor creatThread(String name, int size) {ThreadFactory threadFactory new ThreadFactoryBuilder().setNameFormat(name).build();return new ThreadPoolExecutor(size,//corePoolSize线程池核心池的大小。size,//maximumPoolSize 线程池的最大线程数。0L,//keepAliveTime 当线程数大于核心时此为终止前多余的空闲线程等待新任务的最长时间空闲线程存活时间。TimeUnit.MICROSECONDS,//unit keepAliveTime 的时间单位。new LinkedBlockingQueue(1024),//workQueue 存放提交但未执行任务的队列。threadFactory,//threadFactory 创建线程的工厂类。new ThreadPoolExecutor.AbortPolicy()//handler等待队列满后的拒绝策略。);
} ThreadFactoryBuilder使用的是谷歌guava。
POM为
dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion32.1.3-jre/version
/dependency
在Idea中运行正常测试了几十遍没有任何问题但是由于提交代码要使用基于Eclipse的工具在打开Eclipse时就发现出现了编译错误。
从源代码分析使用的构造器如下 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueueRunnable workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {if (corePoolSize 0 ||maximumPoolSize 0 ||maximumPoolSize corePoolSize ||keepAliveTime 0)throw new IllegalArgumentException();if (workQueue null || threadFactory null || handler null)throw new NullPointerException();this.acc System.getSecurityManager() null ?null :AccessController.getContext();this.corePoolSize corePoolSize;this.maximumPoolSize maximumPoolSize;this.workQueue workQueue;this.keepAliveTime unit.toNanos(keepAliveTime);this.threadFactory threadFactory;this.handler handler;}
但是Eclipse一直提示没有找到构造器查看源代码没有发现问题
public class LinkedBlockingQueueE extends AbstractQueueEimplements BlockingQueueE, java.io.Serializable{}
public static class AbortPolicy implements RejectedExecutionHandler {}
但还是尝试修改了代码以避免提交代码后出现编译问题修改后的代码编译正常代码如下
public static ThreadPoolExecutor creatThread(String name, int size) {ThreadFactory threadFactory new ThreadFactoryBuilder().setNameFormat(name).build();BlockingQueueRunnable linkedBlockingQueue new LinkedBlockingQueue(1024);RejectedExecutionHandler abortPolicy new ThreadPoolExecutor.AbortPolicy();return new ThreadPoolExecutor(size,//corePoolSize线程池核心池的大小。size,//maximumPoolSize 线程池的最大线程数。0L,//keepAliveTime 当线程数大于核心时此为终止前多余的空闲线程等待新任务的最长时间空闲线程存活时间。TimeUnit.MICROSECONDS,//unit keepAliveTime 的时间单位。linkedBlockingQueue,//workQueue 存放提交但未执行任务的队列。threadFactory,//threadFactory 创建线程的工厂类。abortPolicy//handler等待队列满后的拒绝策略。);}
不知道为何在公司内网环境中无法编译通过在我的PC上新装的Eclipse中可以编译通过。
新安装的Eclipse版本为2023-12 (4.30.0)
公司内网Eclipse版本为2017-06好像是这个
再有一个不同就是内网是jar包我本地PC是mavenboot。
为什么编译不过没有探究出来希望有大神可以指点一二。