jjzjj

concurrent.futures

全部标签

java - Spring Kafka-用Producer Listener配置KafkaTemplate和用Listenable Future注册回调的区别

所以我在浏览Springkafka文档时遇到了ProducerListener。这是SpringKafka文档所说的-“可选地,您可以使用ProducerListener配置KafkaTemplate以获取包含发送结果(成功或失败)的异步回调,而不是等待Future完成。”他们还指定了接口(interface)-publicinterfaceProducerListener{voidonSuccess(Stringtopic,Integerpartition,Kkey,Vvalue,RecordMetadatarecordMetadata);voidonError(Stringtopi

java - 为什么 java.util.concurrent.TimeUnit.convert 抛出 AbstractMethodError 而不是抽象

java.util.concurrent.TimeUnit有这个来源:publiclongconvert(longsourceDuration,TimeUnitsourceUnit){thrownewAbstractMethodError();}为什么这不是一个抽象方法abstractintexcessNanos(longd,longm); 最佳答案 方法声明上方的单行注释如下,//Tomaintainfullsignaturecompatibilitywith1.5,andtoimprovethe//clarityofthegen

java.util.concurrent.LinkedBlockingQueue put 方法在 Scala 中需要 Nothing 作为参数

这是代码片段-importjava.util.concurrent.LinkedBlockingQueuedefmain(args:Array[String]){valqueue=newLinkedBlockingQueuequeue.put("foo")}这给了我-错误:类型不匹配;找到:java.lang.String("foo")要求:无queue.add("foo")我的理解是因为我没有指定进入队列的元素的类型。如果是这样,我们如何在Scala中为LinkedBlockingQueue指定类型而不是默认的通用类型? 最佳答案

java - 内存屏障和 java.util.concurrent.locks.Condition 示例

我对使用Lock提供的Condition时的内存屏障有疑问。关于thejavadocforCondition中提供的示例,我有一个关于使用的问题:intputptr,takeptr,count;难道不应该将这些属性声明为volatile吗?正如我从示例中理解的那样,线程可能看不到例如count的修改。或者是说,当signal()被调用时,自获得锁以来所做的所有修改对其他线程都是可见的?很像synchronizedblock中的一些代码吗?如果是,当调用signal()时,或者当调用锁上的unlock()时,修改是否可见?谢谢。编辑:我在Lock的javadoc中看到:AllLockim

java - 等待一批 future 完成时超时?

我有一组Futures,通过将Callable提交给Executor创建。伪代码:foralltasksfutures.add(executor.submit(newcallable(task)))现在我想让所有future最多等待n秒,直到全部完成。我知道我可以调用Future#get(timeout)但是如果我在一个循环中为我的所有futures依次调用它,超时就会开始累加。伪代码:forallfuturesfuture.get(timeout)getblock在结果准备好之前超时。因此,如果第一个在超时前完成,第二个也在超时前完成,依此类推,整个执行时间最多为numberoffu

java - future 任务被 ThreadPoolExecutor 拒绝

我有一个ThreadPoolExecutor,我向它提交了一个任务。privateThreadPoolExecutorthreadPoolExecutor=newThreadPoolExecutor(1,1,0L,TimeUnit.MILLISECONDS,newArrayBlockingQueue(1));此代码将Runnable提交给ThreadPoolExecutor。protectedvoidwaitAndSweep(finalStringsymbol){runnable=newRunnable(){publicvoidrun(){/*irrelevantcode*/}};tr

java - 为什么 Queue.poll 比 Iteration 快? (java.util.concurrent.ConcurrentLinkedQueue)

我有一段代码可以从队列中获取所有元素。之后我不关心队列的状态,我可以确信在我从队列中删除元素时队列不会被修改。我最初使用迭代器来提取元素,因为我认为它比轮询元素更快...但我运行了以下测试:ConcurrentLinkedQueuequeue=newConcurrentLinkedQueue();for(inti=0;ilist=newLinkedList();longstart=System.currentTimeMillis();for(Objectobject:queue)list.add(object);longtime1=System.currentTimeMillis()-

connector - "SAP Java Connector"的 future

SAPJava连接器是否仍然是将Java应用程序与SAP连接的好方法?将来(尤其是在ECC6.0中)是否会有连接器的支持和维护,或者是使用ECC6.0中的“企业服务”的唯一好方法? 最佳答案 考虑到Java连接器最近才重新开发到版本3,现在用于弥合NetWeaverJavaStack和它的ABAP对应物之间的差距,可以安全地假设JCo将存在很长一段时间。如果可以选择的话,我总是更喜欢使用JCo而不是Web服务——开销更少,在ABAP方面更容易。您可能想看看像HiberSAP这样的工具,RCER或sap4j让Java方面的生活更轻松一

java - 使用 java.util.concurrent.Executor 阻止 tomcat 停止

背景:我需要使用java.util.concurrent.Executor来序列化WebService中一些遗留代码的执行。我在WebService类中添加了一个成员变量executor。它由springframework从外部注入(inject)。执行器bean定义如下:Tomcat版本:6.0.22Java版本:1.6Spring框架:2.5.5问题:WS按预期工作。我们将它推出到Linux服务器上。然后我们意识到tomcat停止脚本不能再停止服务。我对tomcat实例使用kill-3。在线程转储中,我找到了这些行:"pool-2-thread-1"prio=10tid=0xad6

java - 垃圾收集和异步调用/ future 对象

下面是一个利用Future接口(interface)进行异步调用的示例代码。我需要对get()方法进行一些说明。Futurefuture=getAsyncString();//dosomething...Stringmsg="";if(validation)return;elsemsg=future.get();//dosomethingelse...return;future变量是在方法中初始化的,所以该变量在方法执行后很快就会被GC清除,因为它不再被使用。那么如果代码进入if语句,JVM会是什么状态?如果没有人要读回它,JVM将如何处理包装的结果?它会影响ThreadPool或线程