草庐IT

C++11多线程—thread

全部标签

java - 不使用 2.11 编译的 Java 中 Scala 集合的简单使用

所以我得到了这个super令人兴奋的Java类:importscala.collection.immutable.Stream;publicclassEmptyStreamFactory{publicstaticStreamcreateEmptyStringStream(){returnStream.empty();}}使用类路径上的2.10.4scala-library.jar编译得很好(或2.9.2,这是值得的)。现在我用2.11试试:EmptyStreamFactory.java:5:error:incompatibletypesreturnStream.empty();^req

java - 使用 Guava CharMatcher 作为类中的静态字段。 CharMatcher 线程安全吗?

我需要替换字符串中的一些字符:每个点加下划线。只需执行:myString.replace(".","_");哪个有效。不过,我想使用Guava的CharMatcher,它应该有更好的性能。CharMatcherdotCharMatcher=CharMatcher.anyOf(".");dotCharMatcher.replaceFrom(myString,"_");它运行在一个有很多线程的服务器上。我能否在使用它的类中将dotCharMatcher设为静态字段,还是应该在每个请求中创建一个?(它是线程安全的吗?)谢谢 最佳答案 是的

java - javax.servlet.ServletContext set/getAttribute 线程安全吗?

必须在javax.servlet.ServletContext中使用setAttribute()和getAttribute(String),我找不到任何关于预期的信息并发访问的行为。但是,这些操作很可能会被不同的线程调用。servletspecification3.0状态:Aservletcanbindanobjectattributeintothecontextbyname.AnyattributeboundintoacontextisavailabletoanyotherservletthatispartofthesameWebapplication.但是,没有关于这些操作的并发行

Java : How to return intermediate results from a Thread

使用Java7我正在尝试构建一个监视数据存储(某种集合类型)的观察者,然后在某些时候从中返回某些项目。在这种情况下,它们是时间戳,当时间戳超过当前时间时,我希望它返回到起始线程。请看下面的代码。@Overridepublicvoidrun(){while(!data.isEmpty()){for(LocalTimedataTime:data){if(newLocalTime().isAfter(dataTime)){//returnaresultbutcontinuerunning}}}}我读过有关future和callables的内容,但它们似乎会在返回时停止线程。如果使用可调用,我

java - 单次执行后关闭 PreparedStatement——这是设计缺陷吗?

我调查了很多地方,听到了很多可疑的说法,从PreparedStatement应该比Statement更受欢迎,即使只是为了性能优势;一路声称PreparedStatement应该专门用于批处理语句,而不是其他。但是,我关注的(主要是在线的)讨论似乎存在盲点。让我展示一个具体的场景。我们有一个带有数据库连接池的EDA设计的应用程序。事件来了,有的需要坚持,有的不需要。有些是人为生成的(例如,每X分钟更新/重置一些内容)。一些事件按顺序发生和处理,但其他类型的事件(也需要持久性)可以(并且将会)并发处理。除了那些人为生成的事件之外,没有关于需要持久化的事件如何到达的结构。此应用程序是很久以

java - KeyGenerator 线程安全吗?

我想知道我是否可以实例化javax.crypto.KeyGenerator仅一次,然后在多线程环境中使用此实例。它的JavaDoc文档没有说明它的线程安全性。或者使用ThreadLocal会更好方法?更新:一个相关的问题是IsSecureRandomthreadsafe?虽然JavaDoc没有声明该类是线程安全的,但社区仍然认为它是线程安全的决定从实践的角度来看非常重要。我想知道KeyProvider的情况。 最佳答案 除非文档明确保证线程安全,否则将任何事物视为非线程安全。你是对的,这种哲学对线程安全文档的稀缺性几乎没有帮助...

java - 如何使用 JDK 11 为 Collection.toArray() 提供生成器函数?

我已升级EclipsePhoton4.8(http://download.eclipse.org/eclipse/downloads/drops4/S-4.9M2-201808012000/)以支持JDK11(https://marketplace.eclipse.org/content/java-11-support-eclipse-photon-49)。它似乎工作正常(版本:4.9构建ID:I20180801-2000)。在JDK11中有一个新的方法覆盖toArray()在Java.util.Collection中:defaultT[]toArray(IntFunctiongene

java - 按特定顺序仅使用 5 个线程打印从 1 到 10 的整数

这个问题在这里已经有了答案:Print1to100using10threadsinjava(12个答案)关闭4年前。我最近开始使用Java进行多线程我在解决一个只有5个线程的问题时遇到了问题,范围从T1、T2、...T5。任务是按以下顺序打印从1到10的数字。T1->1T2->2T3->3T4->4T5->5T1->6T2->7T3->8T4->9T5->10我尝试用这段代码解决了它。publicstaticvoidmain(String[]args)throwsInterruptedException{Countercounter=newCounter();Thread[]tArra

java - 必须使用 "putIfAbsent"的返回值——真的吗?

我有一个像这样的ConcurrentMaps的ConcurrentMap...ConcurrentMap>mapsMap=newConcurrentHashMap();现在在某些方法中,我想通过确保某个键存在映射来防止NPE...mapsMap.putIfAbsent(someKey,newConcurrentHashMap());...所以我可以安全地调用...mapsMap.get(someKey).put(...);...这里不用担心空值。现在,Sonarqube告诉我,这违反了规则RSPEC-2201...Returnvaluesfromfunctionswithoutside

java - 使用 JMX 获取线程 CPU 时间的有效方法

我目前通过以下方式使用JMX获取总线程CPU时间:privatelongcalculateTotalThreadCpuTime(ThreadMXBeanthread){longtotalTime=0l;for(ThreadInfothreadInfo:thread.dumpAllThreads(false,false))totalTime+=thread.getThreadCpuTime(threadInfo.getThreadId());returntotalTime;}由于ThreadMXBean实际上是一个远程代理,性能是可怕的,对于这个实际的方法调用来说是秒的数量级。有没有更快