草庐IT

unique_future

全部标签

java - 并发 - 中断 Future 而不取消它

有什么方法可以在不取消Future的情况下中断它吗?javadocAPI:booleancancel(booleanmayInterruptIfRunning)Attemptstocancelexecutionofthistask.Thisattemptwillfailifthetaskhasalreadycompleted,hasalreadybeencancelled,orcouldnotbecancelledforsomeotherreason.Ifsuccessful,andthistaskhasnotstartedwhencanceliscalled,thistaskshou

java - 将 Scala future 转换为 Java future

我有一个包含方法的生成的java接口(interface):publicFuturegetCustomersAsync(AsyncHandlerasyncHandler);我想用Akka实现它。我写了以下内容:overridedefgetCustomerAsync(asyncHandler:AsyncHandler[Customer]):Future[_]={myActorRef.ask(GetCustomer,system.actorOf(Props[Responder]))}问题是ask返回scala.concurrent.Future[Any]并且该方法必须返回java.util

java - Java GUI 开发的 future ?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭12年前。考虑到这一点Sun/Oracle在“发明”了JavaFX之后决定不再开发SwingJavaFX不能正常工作,someconsideritafailurealreadySWT并非真正独立于平台的特性、处理GUI元素的手动任务以及绑定(bind)特定于平台的库的必要性还有别的出路吗?如果我想在JVM上做GUI开发具有良好的API(Swing和SWT不错,但也

java - java.util.concurrent.Future 是线程安全的吗?

我正在尝试查找说明java.util.concurrent.Future是否是/不是线程安全的文档。例如,我能否安全地将同一个Future实例提供给多个线程,这些线程都将调用Future.get(...)?我已经以这种方式使用Future测试了代码,它似乎工作正常,但如果我能找到文件证明future以这种方式进行并发访问是安全的,我会更高兴。谢谢。 最佳答案 鉴于Future旨在供多个线程使用(至少是提交线程和设置结果的线程),并且文档指定异步计算和异步计算之间存在先行关系get调用之后发生的操作,我会假设这些实现是线程安全的(至少

java - Future.cancel(false) 的用例?

在什么情况下需要将false参数的mayInterruptIfRunning传递给Future.cancel()?如果我理解正确,如果你传递false并且任务被取消但线程没有被中断,结果(或ExecutionException)将永远无法访问,因为任务仍然被标记为已取消(即isCancelled()返回true和get()抛出CancellationException。)其他可能的情况是:Runnable或Callable实现不检查中断,即使你打断它也会运行完成(这里的中断没有区别)在您调用cancel()之前任务已经完成(再次中断没有区别)任务在退出之前需要执行一些清理(一个编写良好

java - SQL(Java,h2): What's the best way to retrieve the unique ID of the single item I just inserted into my database?

这个问题在这里已经有了答案:HowtogettheinsertIDinJDBC?(14个答案)关闭7年前。我目前的方法是这样的:SELECTTOP1IDFROMDATAENTRYORDERBYIDDESC这假设最新插入的项目始终具有最高的唯一ID(主键,自动递增)。这里有些味道不对。替代方案?

java - 具有 future 兼容性且不会破坏 future 修改的类

我正在阅读Android的RecyclerView的源代码,我正在使用SimpleOnItemTouchListener并阅读有关此类的文档。但是我不确定我是否理解这个的意思:Anotherbenefitofusingthisclassisfuturecompatibility.Astheinterfacemaychange,we'llalwaysprovideadefaultimplementationonthisclasssothatyourcodewon'tbreakwhenyouupdatetoanewversionofthesupportlibrary这是因为SimpleOn

java - 0 超时的 future.get 行为

谁能给我指点一些文档,明确说明超时为0的“Future.get”不会等待?java.util.concurrent.Future的API文档没有明确说明future.get(0,unit)的行为。就其本身而言,语句“如果需要,最多等待给定时间...”暗示此调用根本不会等待,但考虑到Object.wait(0)的长期行为>(无限等待),我很紧张依赖于future.get(0,unit)的“无等待”行为扫描一些JDK提供的类(即FutureTask)的源代码,我看到Future的这个特定实现在超时为0时不会等待。我想说longtimeout=Math.max(until-now,0);re

java - 如何在不使用 ExecutorService 的情况下获得 Future<MyObject>?

我真的很想做这样的事情:CallablemyCallable=....Future=newThread(myCallable).start();我基本上想启动一个与我的主要任务并行运行的长时间运行的任务,我不希望池化或线程重用。Executors的东西似乎非常面向池,它要求我关闭池,所有这些我都不想做。我想使用“Callable/Future”模式,因为稍后我可能不得不引入执行器,但就目前的情况而言,它们只是开销。有什么建议吗? 最佳答案 试试FutureTask。它对Executor框架没有任何明确的依赖性,可以按原样实例化,或者

java - 人们应该为 Scala 的 future 平台关注点做好准备?

目前Scala仅在JVM上运行,CLR的实现已过时。但目前有一些声音表示,Microsoft有兴趣为.NET的最新Scala端口提供资金。考虑到Oracle方面缺乏任何计划或监督如何处理Java/JVM/生态系统,Scala开发人员如何做好准备,最终可能没有像样的平台可以运行Scala?是否有任何计划在未来有一些“独立”的ScalaVM实现,它将Scala的功能映射到一些字节码/VM,而不是不得不忍受当前VM实现中的所有这些遗留错误(没有泛型,协变数组、奇怪的注解、无尾调用等)? 最佳答案 这是关于VM的另一种观点:虽然从整体上看并