Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在所有提交的任务完成后不阻塞地关闭Java执行器

在所有提交的任务完成后不阻塞地关闭Java执行器
EN

Stack Overflow用户
提问于 2016-05-17 05:23:28
回答 1查看 4.3K关注 0票数 6

我想知道是否有一种方法可以关闭ExecutorService并允许所有提交的任务在不阻塞的情况下完成。

更具体地说,我想安排一个延迟的Runnable,然后继续代码,而不需要保留对ExecutorService的引用就可以关闭它。

以下代码将终止提交的任务,因为它尚未启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
executor.shutdown();
...

在任务完成之前,此代码将被阻塞:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
executor.awaitTermination(timeout, TimeUnit.MILLISECONDS);
...

我想要这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
executor.shutdownAfterTerminationWithoutBlocking();
...
code that runs without waiting

我知道使用Timer是可能的,但我想知道这是否有可能使用ExecutorService

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 05:37:11

ExecutorService.shutdown javadoc说:

启动有序关机,执行以前提交的任务,但不接受任何新任务。

因此,已经提交但尚未开始的任务将被执行。完全符合你的需要。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37277469

复制
相关文章
子串和
给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。
书童小二
2018/09/03
5430
leetcode最长回文子串_最长回文子串算法
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
全栈程序员站长
2022/11/03
8030
回文子串
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
4100
字符串中查找子串_cstring查找子字符串
假设要从主串 s = “goodgoogle” 中找到 t = “google” 子串。根据我们的思考逻辑,则有:
全栈程序员站长
2022/09/24
3K0
字符串中查找子串_cstring查找子字符串
最长公共子串 / 子序列
本文记录寻找两个字符串最长公共子串和子序列的方法。 名词区别 最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序,并不要求连续。 最长公共子串 是指两个字符串中最长连续相同的子串长度。 例如:str1=“1AB2345CD”,str2=”12345EF”,则str1,str2的最长公共子串为2345。 动态规划 如果 str1 的长度为
为为为什么
2022/08/10
4.6K0
最长公共子串 / 子序列
18:验证子串
18:验证子串 总时间限制: 1000ms 内存限制: 65536kB描述 输入两个字符串,验证其中一个串是否为另一个串的子串。 输入输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。输出若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)  否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)  否则,输出 No substring。样例输入 abc dddncabca 样例输出 abc is
attack
2018/04/03
1.5K0
回文子串的个数_统计回文子串的个数
(1)从左往右,钉住最后一个字符。 “abaa”串:先考查中心子串“ba”不是回文串,就可以判定“abaa”不是回文子串; “baa”串:先考查中心子串“baa”不是回文,它是最外子串,不必向外扩散; “aa”串:考查中心子串中“aa”是回文,它是最外子串,不必向外扩散。 (2)从右边倒数第二个字符往左,钉住第一个字符。 “aba”串:考查中心子串“aba”,是回文,它是最外子串,不必向外扩展; “ab”串:考查子串“ab”,不是回文,它是最外子串,不必向外扩展; 这样下来,加上单个子串“a”,“b”,“a”,“a”4个,“abaa”中共包含6个回文子串。 1.2、输入描述 输入数据中有多个测试案例。每个案例是一个非空且长度不超过5000的字符串。 处理到文件结尾。 1.3、输出描述 在每行上打印该字符串中回文子串的个数。 1.4、输入样例 aba aa 1.5、输出样例 4 3 2、C++实现 #include <iostream> using namespace std; int main(int argc, char* argv[]) { char s[5000]; int p, i, Half, Left, Right, Count; while( cin>>s ) { i = strlen(s); Count = 0; //从左到右钉住最后一个 for(p=0; p<=i-1; p++) { Half = ((i-1)-p) / 2; //如果子串是奇数个 if( ((i-1)-p)%2 == 0 ) { Left = p + Half - 1; Right = p + Half + 1; } else { //如果子串是偶数个 Left = p + Half; Right = p + Half + 1; } while(Left >= p) { if( s[Left] == s[Right]) { Count++; //发现了一个回文串 Left--; Right++; } else { //如果不相等,立即终止,由中心向外扩散不可能会有回文串 break; } } } //从右到左钉住第一个 for(p=i-2; p>=1; p--) { Half = p / 2; //如果子串是奇数个 if(p%2 == 0) { Left = Half - 1; Right = Half + 1; } else //如果子串是偶数个 { Left = Half; Right = Half + 1; } while( Left >= 0 ) { if( s[Left] == s[Right] ) { Count++; //发现了一个回文串 Left--; Right++; } else { //如果不相等,立即终止,由中心向外扩散不可能会有回文串 break; } } } printf("%d\n",Count + i); } return 0; }
全栈程序员站长
2022/11/03
1.2K0
回文子串的个数_统计回文子串的个数
34:回文子串
34:回文子串 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个字符串,输出所有长度至少为2的回文子串。 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。 输入一个字符串,由字母或数字组成。长度500以内。输出输出所有的回文子串,每个子串一行。 子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。样例输入 123321125775165561 样例输出 33 11 77 55 2332 2112 5775
attack
2018/04/03
1.4K0
python最长回文子串动态规划_最长回文子串问题
遍历子串的复杂度是O(n^2),判断是不是回文串的复杂度是O(n),所以这个算法的复杂度是O(n^3)。
全栈程序员站长
2022/09/05
1.5K0
最长回文子串
class Solution { public: string longestPalindrome(string s) { if (s.size()==1 || !s.size()) return s; if (s.size()==2 && s[0]==s[1]) return s; int n = s.siz(); vector<vector<bool>> f(n, vector<bool>(n)); // 记录子串的起始索引和长度 int start=0,len=1; fo
lexingsen
2022/02/25
5520
最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。啥是回文串?就是字符可以看成是对称的,从左往右读和从右往左读是一样意思,比如:上海自来水来自海上。来看下下面的示例:
用户4456933
2021/06/01
6370
扩展kmp求最长回文子串_算法-字符串之最长回文子串
首先介绍一下什么叫回文串,就是正着读和倒着读的字符顺序都是一样的,eg:level,noon。而回文子串,顾名思义,就是主串中满足回文性质的子串。
全栈程序员站长
2022/08/23
8350
最长公共子串
思路一,利用动态规划的方法,列出全部结果来寻找规律,我们发现45度下滑,如果连续相等的话我们可以做递加,不但可以得出最长的字符串数量还可以知道字符的位置。
忧愁的chafry
2022/10/30
4820
最长公共子串
DS串应用—最长重复子串
求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。
叶茂林
2023/07/30
2830
删除字符串中的子串
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
叶茂林
2023/07/28
2870
删除字符串中的子串
#103. 子串查找
内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 这是一道模板题。 给定一个字符串 A AA 和一个字符串 B BB,求 B BB 在 A AA 中的出现次数。 A AA 中不同位置出现的 B BB 可重叠。 输入格式 输入共两行,分别是字符串 A AA 和字符串 B BB。 输出格式 输出一个整数,表示 B BB 在 A AA 中的出现次数。 样例 样例输入 zyzyzyz zyz 样例输出 3 数据范围与
attack
2018/04/12
1.3K0
LeetCode - 最长回文子串
同样是三年前做的一道题目,很经典的字符串领域的算法题,求字符串的最长回文子串,当时我也是提交了好几次,并且看了相关的资料以后,才成功通过。
晓痴
2019/07/24
6760
LeetCode - 最长回文子串
最长公共子串
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
7760
本期题目:连续子串
给你两个字符串t和p 要求从t中找到一个和p相同的连续子串 并输出该子串第一个字符的下标
梦想橡皮擦
2023/04/21
2260
647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:"abc" 输出:3 解释:三个回文子串: "a", "b", "c" 示例 2: 输入:"aaa" 输出:6 解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa" class Solution { public int countSubstrings(Stri
CaesarChang张旭
2021/06/01
2820

相似问题

PHP5中简单而强大的图表库

40

简单的独立网站检查工具

40

强大而简单的在.NET中实现加密技术?

23

用于故障转移IIS服务的强大而准确的IIS报告工具

10

强大的windows计算器工具?

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文