0 0

用java怎么做oj啊 5

最近用java做oj,但时间限制怎么都不能完美实现;用多线程做,不能强制终结该线程;开一个子进程没法完全重定向流.....有谁做过,指导一下哦。。。。感激不尽。。。
2013年3月31日 14:53

2个答案 按时间排序 按投票排序

0 0

通过shutdownNow()方法停止子任务确实存在局限性:
试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。无法保证能够停止正在处理的活动执行任务,但是会尽力尝试。例如,通过 Thread.interrupt() 来取消典型的实现,所以任何任务无法响应中断都可能永远无法终止。
但是一般场景还是可以满足的。

如果你的场景无法满足,那么你的死循环那里,可以加上一个参数,然后可以通过主线程在需要的时候去修改这个参数,使得子线程的这个死循环结束。

然后,以上两种方案结合。

2013年4月05日 15:52
0 0

示例代码 :

public static void main(String[] args) {
		System.out.println("Start...");
		
		ExecutorService exec = Executors.newCachedThreadPool();
		
		testTask(exec, 15);  //任务成功结束后等待计算结果,不需要等到15秒  
		testTask(exec, 5);  //只等待5秒,任务还没结束,所以将任务中止 
		
		exec.shutdown();
		System.out.println("End!");
	}

	private static void testTask(ExecutorService exec, int timeout) {
		MyTask task = new MyTask();
		Future<Boolean> future = exec.submit(task);
		Boolean taskResult = null;   
        String failReason = null;  
        try {
        	//等待计算结果,最长等待timeout秒,timeout秒后中止任务 
        	taskResult = future.get(timeout, TimeUnit.SECONDS);
		} catch (InterruptedException e) {   
            failReason = "主线程在等待计算结果时被中断!";   
        } catch (ExecutionException e) {   
            failReason = "主线程等待计算结果,但计算抛出异常!";   
        } catch (TimeoutException e) {   
            failReason = "主线程等待计算结果超时,因此中断任务线程!";   
            exec.shutdownNow();   
        }
        
        System.out.println("\ntaskResult : " + taskResult);   
        System.out.println("failReason : " + failReason);  
	}

2013年4月01日 10:34

相关推荐

    做了个OJ上用户的做题情况查看器

    标题中的“做了个OJ上用户的做题情况查看器”指的是创建了一个在线编程竞赛平台(Online Judge,简称OJ)用户答题记录的查询工具。这个工具可以帮助管理员或比赛组织者跟踪和分析用户在OJ上的答题行为,例如查看用户...

    《JAVA课程设计》--基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,北大OJ,浙大OJ等.zip

    有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验...

    青岛大学OJ

    3. **编程语言支持**:OJ系统通常支持多种编程语言,如C、C++、Java、Python等,以便不同语言背景的学生使用。 4. **评测机制**:系统会使用一系列测试用例对提交的代码进行测试,包括正常情况、边界情况和异常情况...

    -OJ-:在线评委(java)

    在本文中,我们将深入探讨使用Java进行在线评委系统的相关知识,以及如何通过LeetCode等平台进行刷题来提升编程技能。 Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和丰富的类库闻名。在在线评委...

    周四要用的oj题目输入输出

    这些文件信息似乎与在线...多做题、多实践是提升编程技能和应对OJ挑战的有效方法。你可以尝试解码这些.in文件,找出其中的规律,然后编写代码去匹配相应的输出,不断迭代改进,直到你的程序能在所有测试用例上都通过。

    oj刷题 西安理工大学学生在线实验系统编程题答案(超级详细)

    这类系统支持多种编程语言,如C、C++、Java、Python等,学生可以在平台上提交代码并立即获取运行结果和评测反馈。 这个“oj刷题”压缩包文件很可能是包含了西安理工大学在线实验系统中的一些典型题目,包括但不限于...

    在线OJ注意事项1

    它允许用户通过网络提交多种编程语言(例如C、C++、Java、Python等)的代码,然后系统会编译并运行这些代码,用预设的测试用例来验证其正确性。OJ系统通常用于高校学生编程训练、自动作业评判以及各类编程竞赛,如...

    程序设计基础 OJ 题库 NUIST

    WorkSpace文件可能包含了你在OJ平台上做题时的工作目录,其中可能包括源代码文件、测试数据、编译和运行的结果等。通过查看和分析这个工作空间,你可以回顾和改进你的解题思路,也可以与其他同学交流分享经验。 总...

    java猜字母游戏源码-algorithms-and-oj:Python/JS/C++/Java写的一些OJ的回答

    java猜字母游戏源码继续思考,继续生活 直到 2018-05-28 11:58:16,我已经解决了99 / 758问题,而133仍然被锁定。 完成统计: JavaScript:59 Python:49 C++:1 Java:1 笔记: :locked: 意味着你需要从 LeetCode ...

    leetcode530-algorithms_and_oj:Python/C++/Java写的一些OJ的回答

    leetcode 530 继续思考,继续生活 直到 2018-03-12 15:06:17,我已经解决了5 / 714问题,而132仍然被锁定。 完成统计: JavaScript:0 ...Java:0 ...Java ...去做 去做 去做 ...去做 去做 去做 ...去做 去做 ...去做

    java实现校园一卡通源码-algorithms_and_oj:algorithm_and_oj

    java实现一卡通形象继续思考,继续生活 直到 2020-10-13 16:55:47,我已经解决了97 / 1473问题,而232仍然被锁定。 完成统计: JavaScript:0 Python:0 C++:0 Java:53 去: 44 笔记: :locked: 意味着你需要从 ...

    SwordToOffer:剑指offer(java版)使用Java实现剑指offer的大部分代码。已在牛客网OJ中AC,建议大家到牛客网OJ实践这部分内容

    但是不保证我说的思路都是正确的,个人对算法也不是特别在行,只不过这本书的算法多看了几遍多做了几遍多了点心得体会。于是想总结一下。如果有错误也希望能指出,谢谢。具体代码可以参考我的GitHub仓库:节选剑指...

    Java_Blackjack:我多年前做过的二十一点游戏

    【Java_Blackjack:多年前的二十一点游戏】项目是一个基于Java编程语言开发的桌面版二十一点游戏。这个项目展示了开发者对Java语言的理解以及利用QTjambi库将Java与Qt图形用户界面框架集成的能力。QTjambi是一个允许...

    OJ在线判题系统 - Vue 3 + Arcodesign + Springboot的 全栈项目,实现 在线做题,判题的功能

    该项目利用了基于springboot + vue + mysql的开发...Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    leetcode和oj-LeetCode_Java_Solutions:LeetCode_Java_Solutions

    oj LeetCode 解决方案和评论 大家好。 我是南加州大学计算机科学专业的研究生。 我的课程从今年秋季(2016 年)开始,到 2018 年Spring(2 年)结束。 这是我的 。 目前,我正在为即将到来的招聘做准备。 尽管现在是...

    leetcode:LeetCode OJ解决方案

    LeetCode LeetCode解决方案 标题 ...Java 2014-11-04 中等的 排序清单 Java 2014-11-05 中等的 从排序列表中删除重复项 Java 2014-11-05 简单的 从排序列表II中删除重复项 Java 2014-11-06 中等的

    leetcode和oj-coding:我在Java中对LeetCode和Codeforces问题的解决方案

    Java 解决方案。 当我阅读一个解决方案时,我往往更想知道它背后的思考过程。 因此,我尝试在每个问题中包含尽可能多的思考过程。 问题包括 力扣 OJ 代码部队 其他有趣的面试问题 去做 时空效率 执照 The MIT ...

    javalruleetcode-OJ:哦

    java lru leetcode 奥杰 直到 2020-03-04 23:36:02 这个项目可以让你的 github 瓷砖看起来很棒 (;=_=) 力码 已完成: 13 / 1256 完全的: Python Java C++ 2 12 1 ID 标题 困难 Python Java C++ 001 简单的 002 中等...

    leetcode和oj-leetcode:我为LeetCodeOnlineJudge问题优化的Java解决方案

    Java 问题解决方案。 代码在 OJ 中测试。 时间和空间得到优化。 我仍在将我的解决方案从 leetcode 迁移到 github。 解决方案主要基于我自己的实现以及来自 . 每个问题都对问题进行了评论。 去做 添加更多问题 添加...

    leetcode和oj-LeetcodeInEclipse:使用Leetcode问题的Algo和DS编程

    在IT行业中,程序员的技能测试和自我提升经常依赖于解决在线编程挑战,而LeetCode和各类在线判题平台(Online Judges,简称OJ)就是这样的工具。本文将详细介绍如何在Eclipse集成开发环境中高效地利用LeetCode进行...

Global site tag (gtag.js) - Google Analytics