- 在本地调试代码时,经常遇到端口被占用导致启动失败的问题,又不能很快找到哪个进程占用了端口,很是恼火。今天,我们用shell命令轻松搞定。 一、打开命令提示符window+R 组合键,调出命令窗口。输入CMD回车,打开命令提示符。 二、查看被占用端口对应的 PID输入命令:netstat -aon|findstr "11800"回车执行该命令,输出: TCP 10.201.242.96... 在本地调试代码时,经常遇到端口被占用导致启动失败的问题,又不能很快找到哪个进程占用了端口,很是恼火。今天,我们用shell命令轻松搞定。 一、打开命令提示符window+R 组合键,调出命令窗口。输入CMD回车,打开命令提示符。 二、查看被占用端口对应的 PID输入命令:netstat -aon|findstr "11800"回车执行该命令,输出: TCP 10.201.242.96...
- 单例模式的5种实现 单例模式的5种实现
- 1.IDEA环境配置爬坑1.1 在project中配置JDK对应的版本,本例中使用JDK1.8,下同。1.2 在Modules中配置JDK对应版本,即使用JDK1.8。1.3 java Compiler配置默认一般是1.5需要改成需要的JDK版本,即使用JDK1.8。2.JUC的定义JUC是java.util.conurrent工具包,通常用于处理并发编程。小知识点:Thread类为线程类,... 1.IDEA环境配置爬坑1.1 在project中配置JDK对应的版本,本例中使用JDK1.8,下同。1.2 在Modules中配置JDK对应版本,即使用JDK1.8。1.3 java Compiler配置默认一般是1.5需要改成需要的JDK版本,即使用JDK1.8。2.JUC的定义JUC是java.util.conurrent工具包,通常用于处理并发编程。小知识点:Thread类为线程类,...
- 鲍光亚 | Zabbix开源社区签约专家《深入理解Zabbix监控系统》图书作者2021 Zabbix深圳大会演讲嘉宾长期专注监控系统软件领域,精通Zabbix,具有多年Zabbix监控系统运维和相关开发经验,持续关注Zabbix的发展,熟悉Zabbix源码。曾就职于某大型互联网企业,专门从事Zabbix系统运维和开发工作。作为一款适用广泛、功能强大的监控软件,Zabbix的核心能力在于快速... 鲍光亚 | Zabbix开源社区签约专家《深入理解Zabbix监控系统》图书作者2021 Zabbix深圳大会演讲嘉宾长期专注监控系统软件领域,精通Zabbix,具有多年Zabbix监控系统运维和相关开发经验,持续关注Zabbix的发展,熟悉Zabbix源码。曾就职于某大型互联网企业,专门从事Zabbix系统运维和开发工作。作为一款适用广泛、功能强大的监控软件,Zabbix的核心能力在于快速...
- 会的,newFixedThreadPool使用了无界的阻塞队列LinkedBlockingQueue,如果线程获取一个任务后,任务的执行时间比较长(比如,上面demo设置了10秒),会导致队列的任务越积越多,导致机器内存使用不停飙升,** 最终导致OOM。 会的,newFixedThreadPool使用了无界的阻塞队列LinkedBlockingQueue,如果线程获取一个任务后,任务的执行时间比较长(比如,上面demo设置了10秒),会导致队列的任务越积越多,导致机器内存使用不停飙升,** 最终导致OOM。
- 1,在任务代码中使用try/catch捕获异常 2,通过future对象的get方法接收抛出的异常 3,为工作者线程设置UNcaughtexceptionHandler,在uncaughtexception方法中处理异常 1,在任务代码中使用try/catch捕获异常 2,通过future对象的get方法接收抛出的异常 3,为工作者线程设置UNcaughtexceptionHandler,在uncaughtexception方法中处理异常
- 会的,newFixedThreadPool使用了无界的阻塞队列LinkedBlockingQueue,如果线程获取一个任务后,任务的执行时间比较长(比如,上面demo设置了10秒),会导致队列的任务越积越多,导致机器内存使用不停飙升,** 最终导致OOM。 会的,newFixedThreadPool使用了无界的阻塞队列LinkedBlockingQueue,如果线程获取一个任务后,任务的执行时间比较长(比如,上面demo设置了10秒),会导致队列的任务越积越多,导致机器内存使用不停飙升,** 最终导致OOM。
- 1,在任务代码中使用try/catch捕获异常 2,通过future对象的get方法接收抛出的异常 3,为工作者线程设置UNcaughtexceptionHandler,在uncaughtexception方法中处理异常 1,在任务代码中使用try/catch捕获异常 2,通过future对象的get方法接收抛出的异常 3,为工作者线程设置UNcaughtexceptionHandler,在uncaughtexception方法中处理异常
- 1,ArrayBlockingQueue :(有界队列)是一个用数组实现的有界阻塞队列,按FIFO排序量。 2,LinkedBlockingQueue: (可设置容量队列)基于链表结构的阻塞队列,按FIFO排序任务,容量可以选择进行设置,不设置的话,将是一个无边界的阻塞队列,最大长度为Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;newFi... 1,ArrayBlockingQueue :(有界队列)是一个用数组实现的有界阻塞队列,按FIFO排序量。 2,LinkedBlockingQueue: (可设置容量队列)基于链表结构的阻塞队列,按FIFO排序任务,容量可以选择进行设置,不设置的话,将是一个无边界的阻塞队列,最大长度为Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;newFi...
- newFixedThreadPool (固定数目线程的线程池) - 核心线程数和最大线程数大小一样 - 没有所谓的非空闲时间,即keepAliveTime为0 - 阻塞队列为无界队列LinkedBlockingQueue ```java public static ExecutorService newFixedThreadPool(int nThreads, Threa... newFixedThreadPool (固定数目线程的线程池) - 核心线程数和最大线程数大小一样 - 没有所谓的非空闲时间,即keepAliveTime为0 - 阻塞队列为无界队列LinkedBlockingQueue ```java public static ExecutorService newFixedThreadPool(int nThreads, Threa...
- 1,ArrayBlockingQueue :(有界队列)是一个用数组实现的有界阻塞队列,按FIFO排序量。 2,LinkedBlockingQueue: (可设置容量队列)基于链表结构的阻塞队列,按FIFO排序任务,容量可以选择进行设置,不设置的话,将是一个无边界的阻塞队列,最大长度为Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;newFi... 1,ArrayBlockingQueue :(有界队列)是一个用数组实现的有界阻塞队列,按FIFO排序量。 2,LinkedBlockingQueue: (可设置容量队列)基于链表结构的阻塞队列,按FIFO排序任务,容量可以选择进行设置,不设置的话,将是一个无边界的阻塞队列,最大长度为Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;newFi...
- newFixedThreadPool (固定数目线程的线程池) - 核心线程数和最大线程数大小一样 - 没有所谓的非空闲时间,即keepAliveTime为0 - 阻塞队列为无界队列LinkedBlockingQueue ```java public static ExecutorService newFixedThreadPool(int nThreads, Threa... newFixedThreadPool (固定数目线程的线程池) - 核心线程数和最大线程数大小一样 - 没有所谓的非空闲时间,即keepAliveTime为0 - 阻塞队列为无界队列LinkedBlockingQueue ```java public static ExecutorService newFixedThreadPool(int nThreads, Threa...
- a,提交一个任务,线程池中核心线程数小于定义的corePoolSize,线程池会创建一个核心线程来执行任务 b,如果核心线程数满了,即线程数=corePoolSize,会将任务放入workQueue排队等待执行 c,如果workQueue也满了,判断线程是否达到maximumPoolSize,即最大线程数是否满了,如果没满,就创建一个非核心线程... a,提交一个任务,线程池中核心线程数小于定义的corePoolSize,线程池会创建一个核心线程来执行任务 b,如果核心线程数满了,即线程数=corePoolSize,会将任务放入workQueue排队等待执行 c,如果workQueue也满了,判断线程是否达到maximumPoolSize,即最大线程数是否满了,如果没满,就创建一个非核心线程...
- 1,abortPolicy (抛出一个异常,默认的) 2,discardpolicy (直接丢弃任务) 3,discardoldestpolicy (丢弃队列中最老的任务,将当前这个任务继续提交给线程池) 4,callerrunspolicy 交给线程池调用所在的线程进行处理,它直接在 execute 方法的调用线程中运行被拒绝的任务;如果执行... 1,abortPolicy (抛出一个异常,默认的) 2,discardpolicy (直接丢弃任务) 3,discardoldestpolicy (丢弃队列中最老的任务,将当前这个任务继续提交给线程池) 4,callerrunspolicy 交给线程池调用所在的线程进行处理,它直接在 execute 方法的调用线程中运行被拒绝的任务;如果执行...
- **RUNNING**- 该状态的线程池会接收新任务,并处理阻塞队列中的任务;- 调用线程池的shutdown()方法,可以切换到SHUTDOWN状态;- 调用线程池的shutdownNow()方法,可以切换到STOP状态;**SHUTDOWN**- 该状态的线程池不会接收新任务,但会处理阻塞队列中的任务;- 队列为空,并且线程池中执行的任务也为空,进入TIDYING状态;**STOP**-... **RUNNING**- 该状态的线程池会接收新任务,并处理阻塞队列中的任务;- 调用线程池的shutdown()方法,可以切换到SHUTDOWN状态;- 调用线程池的shutdownNow()方法,可以切换到STOP状态;**SHUTDOWN**- 该状态的线程池不会接收新任务,但会处理阻塞队列中的任务;- 队列为空,并且线程池中执行的任务也为空,进入TIDYING状态;**STOP**-...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签