jjzjj

concurrent

全部标签

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()-

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:在修改集合内容时迭代集合

我希望迭代一个集合,但集合的内容会在迭代过程中修改。我希望在创建迭代器时迭代原始集合,而不是迭代添加到集合中的任何新元素。这怎么可能?这是set的默认行为还是我该如何实现?我能想到的一种方法是从原始集合中获取一个不会被修改的新集合,但这似乎不够优雅,必须有更好的解决方案。 最佳答案 如果您想确保看不到任何新元素,那么拍摄集合的快照对我来说就是正确的解决方案。有一些集合,例如ConcurrentSkipListSet这将允许您继续迭代,但我无法看到关于迭代器在查看新元素方面的行为的任何保证。编辑:CopyOnWriteArraySet

java - 如何让 java.concurrency.CyclicBarrier 按预期工作

我正在编写将生成两个线程的代码,然后使用CyclicBarrier类等待它们同步。问题是循环屏障没有按预期工作,主线程没有等待各个线程完成。这是我的代码的样子:classmythreadextendsThread{CyclicBarrierbarrier;publicmythread(CyclicBarrierbarrier){this.barrier=barrier;}publicvoidrun(){barrier.await();}}classMainClass{publicvoidspawnAndWait(){CyclicBarrierbarrier=newCyclicBarri

java - Android-Studio-2.3 错误 :java. util.concurrent.ExecutionException : java. lang.RuntimeException: AAPT 进程未准备好接收命令

您好,我是Android-Studio-2.3的新手我弹出了这些错误消息:错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程未准备好接收命令错误:任务':app:mergeDebugResources'执行失败。Error:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPTprocessnotreadytoreceivecommands我访问了很多网站,但找不到解决这个问题的办法顺便说一下,我已

java - Eclipse 上的 Glassfish 4 - 超时 - java.util.concurrent.TimeoutException

我在让Glassfish服务器实际启动并在Eclipse(luna)安装上保持运行时遇到了麻烦。我已经让Glassfish在Netbeans中运行良好。我已经在Eclipse中创建了服务器,我可以启动它,但进度条达到大约69%然后停止并最终给我一个错误:Unabletostartserverontime.java.util.concurrent.TimeoutException奇怪的是,在等待错误出现的同时,我也可以转到localhost:8080并且服务器正在运行,我也可以转到管理控制台。我也增加了超时(开始时为240秒),但同样的事情发生了。我已经在Eclipse中删除并重新创建了

Java 内存模型 : reordering and concurrent locks

Java内存模型要求在同一监视器上同步的synchronizeblock对在这些block内修改的变量强制执行事前事后处理。示例://inthreadAsynchronized(lock){x=true;}//inthreadBsynchronized(lock){System.out.println(x);}在这种情况下,只要线程A已经通过了synchronizedblock,线程B就会看到x==true。现在我正在重写大量代码以使用java.util.concurrent中更灵活(据说更快)的锁,尤其是ReentrantReadWriteLock。所以这个例子看起来像这样:编辑:示

java - 如何在 java.util.concurrent.atomic 包中定义的类中实现原子性?

我正在浏览java.util.concurrent.atomic.AtomicInteger的源代码,以了解该类提供的原子操作是如何实现原子性的。例如AtomicInteger.getAndIncrement()方法源码如下publicfinalintgetAndIncrement(){for(;;){intcurrent=get();intnext=current+1;if(compareAndSet(current,next))returncurrent;}}我无法理解在无限循环中编写操作序列的目的。它在Java内存模型(JMM)中是否有任何特殊用途。请帮我找到一个描述性的理解。提

java - Play Framework 2.5 JavaAsync 抛出 CompletionException

我正在使用Play2.5构建一个简单的应用程序。为了获得更好的性能,我将Akka分块响应与Java8CompletionStage策略结合使用。下面是生成分块响应的代码(不使用ComperableFuture时工作正常):@SingletonpublicclassAbstractSource{publicSourcegetChunked(Stringhtml){returnSource.actorRef(256,OverflowStrategy.dropNew()).mapMaterializedValue(sourceActor->{sourceActor.tell(ByteStri

java - 从 Spring 应用程序连接到 Cassandra 池的问题

我希望有人真的能够提供帮助,因为我目前一直在尝试使用CassandraATM。我的设置:对于开发,我有一个最小的Cassandra3.0.4集群,它有两个节点(一个在我的工作机器上,一个在VM中)。通常只有本地的启动并运行。我使用最新的Java驱动程序版本3.0.0连接到池。我的cassandra.yaml包含rpc_address和listen_address到每个节点的IP。种子是我的主要工作机器。我的问题:从cqlsh(在任何时候)以及当两个节点都在运行时(从Java),一切都运行良好。但是一旦我在VM中停止那个,我的基于Spring的应用程序就会在启动期间抛出错误:2016-0