草庐IT

task-parallel-library

全部标签

java - 在不使用时钟的情况下用 Java 实现 "task based"程序

我的一个friend在Java开发人员的工作面试中被要求实现一个接收任务的程序,这些任务基本上是具有“待办事项”方法和表示秒数(比如整数)的时间字段的对象。程序应执行任务的“待办事项”方法-从任务到达程序的那一刻起X秒内(其中X是此任务对象中定义为时间字段的时间)。例如,如果程序接收到一个任务,该任务有一个打印“helloIamatask”的“todo”方法并且时间字段为20,那么程序将在20分钟后接收到该任务-“你好,我是一个任务”消息将打印到控制台。你不能使用时钟或计时器,但你确实有某种“内置调度程序”,它每秒运行一次,可以检查每个任务的状态并在需要时执行它们。我认为一个好的解决方

Java Parallel Streams 关闭线程

我已经编写了一个使用Java流的方法,它简单地遍历对象列表并在满足特定条件时返回true/falseJava方法:booleanmethod(SampleObjsampleObj){ListtestList=invokeSomeMethod();intresult=testList.parallelStream().filter(listObj->(listObj.getAttr()=1)).count(listObj->listObj.isAttr4());return(result>10);}我也为此编写了一个Mock测试用例。当我执行测试用例时,测试成功,但是我收到项目自定义错误

java - JAXB Ant Task - 从哪里获得 JAR?

有许多资源可以解释JAXBAnt任务。例如Oracle本身:http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/jaxb/ant.html.然而,显然,没有任何来源似乎提供了JAXB库,尤其是jaxb-xjc.jar,或者至少给出了在哪里下载它的提示。我的JDK1.6.0_24的XJCJABX编译器是2.1.10版本。JDK中似乎没有提供任何JAXB库。我尝试了诸如jaxb-builderEclipse插件(http://sourceforge.net/projects/jaxb-b

java - h : c: f: and ui: denote in JSF tag library? 到底是做什么的

在JSF和Facelets标签中,这些前缀到底是什么?h:c:女:界面:例如:h:headc:catchf:eventui:decorate等 最佳答案 前缀用于将标记限定为属于特定标记库或在XML中称为命名空间。前缀以某种方式在JSF页面的顶部声明(如何取决于您使用的是JSP还是Facelets)。“h”通常对应于HTML库,但您可以使用任何您想要的字母(或单词)作为前缀。常见的映射是:hhttp://java.sun.com/jsf/htmlfhttp://java.sun.com/jsf/corechttp://java.su

java - java线程间通信: stopping all threads when one finishes its task

我有n个线程并行运行,每个线程都执行一些自定义逻辑。但是,我的要求是,当任何一个线程完成执行时,所有其他线程都应该停止执行并返回。实现它的最佳方法是什么?我想通过共享boolean变量来做到这一点。当任何线程完成执行时,它将设置boolean值。所有线程都定期读取此变量并在设置时退出。此外,我的自定义逻辑是一个无限循环,一旦我知道某个其他线程已完成执行,我想在当前迭代后停止执行。这样做的正确方法是什么? 最佳答案 使用ExecutorService及其.invokeAny()方法(注:也有超时的版本)。来自Javadoc:Execu

java - StreamEx.parallel().forEach() 在 .map() 之后不并行运行

我注意到,如果我使用StreamEx库通过自定义ForkJoinPool并行处理我的流,如下所示-后续操作会在该池的并行线程中运行。但是,如果我添加一个map()操作并并行生成流-仅使用池中的一个线程。下面是演示此问题的最小工作示例的完整代码(没有所有导入)。executeAsParallelFromList()和executeAsParallelAfterMap()方法之间的唯一区别是在.parallel()之前添加了.map(...)调用。importone.util.streamex.StreamEx;publicclassParallelExample{privatestati

‘compileDebugJavaWithJavac‘ task (current target is 1.8) and ‘compileDebugKotlin‘ task (current targ

'compileDebugJavaWithJavac'task(currenttargetis1.8)and'compileDebugKotlin'task(currenttargetis17)jvmtargetcompatibilityshouldbesettothesameJavaversion.出现这种情况是因为你电脑安装的jdk版本是1.8,而你Androidstudio设置为17,这就要求你在电脑端升级安装17版本的jdk,否则就编译不了。就是下面这里,选择了jdk8:方法一、电脑安装jdk17这种办法是最简单的,点开图上的2那里以后选择对应的版本下载就好了。方法二、将你的项目改回j

java - ANT:如何修改构建文件中的 java.library.path

java.library.path属性似乎是只读的。例如,当您在以下构建文件上运行antjava.library.path=${java.library.path}some.other.property=${some.other.property}你得到>ant-versionApacheAntversion1.6.5compiledonJune22005>ant-Djava.library.path=commandlinedefinedpathBuildfile:build.xmlshowprops:[echo]java.library.path=commandlinedefined

java - guava-libraries - Ordering 类线程安全吗?

guava-libraries上课Ordering.我想知道它是否是线程安全的。比如可以作为静态变量使用吗?publicstaticOrderingBY_LENGTH_ORDERING=newOrdering(){publicintcompare(Stringleft,Stringright){returnInts.compare(left.length(),right.length());}}; 最佳答案 它与您的compare方法一样线程安全。Ordering的默认实现没有任何实例数据,因此唯一重要的是如何定义比较方法。

java - 使用 Reflections google library 的单元测试仅在由 Maven 执行时失败

我正在使用谷歌Reflectionslibrary用于查询类路径中的某些资源。这些资源与我的项目中的类位于同一位置。我编写了一些单元测试,在Eclipse中作为单元测试执行时成功,但是当我尝试使用Maven执行它们时(例如maveninstall),它们没有按预期工作。经过一些调试,显然问题是在使用Maven执行时,Reflections库无法找到资源所在的类路径url。我得出了这个结论,研究了Reflections如何确定应该检查的类路径URL。作为示例,以下方法显示了Reflections如何在给定类加载器的情况下找到可用的类路径URL(原始的Reflections方法已稍微简化)