草庐IT

多线段

全部标签

java - REST Controller 是多线程的吗?

我一直在这样做tutorial关于如何返回异步可调用对象。它按预期工作。但是当第一个请求hibernate5秒时我收到第二个请求,Controller等待在处理第二个请求之前完成前一个请求。如何让Controller立即处理每个请求并在后台hibernate?@编辑例子:想象一种情况,我的Controller需要向外部api发出请求,并根据其响应发送自己的响应。外部api调用需要2秒。我希望我的应用程序的用户只等待2.5秒,而不是被放入队列,因为Controller一次只能处理一个请求。 最佳答案 IsRESTcontrollerm

java - 使用多线程并行化 Java 中的 for 循环

我是java的新手,我想使用执行程序服务或使用java中的任何其他方法并行化嵌套的for循环。我想创建一些固定数量的线程,这样CPU就不会完全被线程占用。for(SellerNamessellerNames:sellerDataList){for(StringselleName:sellerNames){//getSellerAddress(sellerName)//parallizethistask}}sellerDataList的大小=1000,sellerNames的大小=5000。现在我想创建10个线程并将相同的任务分配给每个线程。这是针对第i个sellerDataList,第

Java 多线程 : Unexpected result

我正在开发企业应用程序。在多线程环境中运行应用程序时,我遇到了一些问题。我正在编写一个程序,其中有一个变量的值正在以非常快的速度(例如每秒10000次更新)更新(递增)。循环运行一定的迭代,变量的值递增并存储在HashMap中。一旦循环终止并打印HashMap中的变量值。我得到了意外的变量值。这是演示程序(请阅读评论以便更好地理解):classtestimplementsRunnable{staticConcurrentHashMapmap=newConcurrentHashMap();staticAtomicIntegervalue_to_be_incremented_stored=

java - 如何为多线程应用程序创建测试环境

全部,最近我开发了一个代码,据说是一个线程安全的类。现在我说“应该”的原因是因为即使在使用同步块(synchronizedblock)、不可变数据结构和并发类之后,由于JVM的线程调度环境,我也无法在某些情况下测试代码。也就是说,我只有纸上的测试用例,但无法复制相同的测试环境。是否有任何特定的指南或这里有经验的成员可以分享有关如何测试多线程环境的内容。 最佳答案 首先,您不能仅通过测试来确保您的类是完全线程安全的。无论您对其运行什么测试,您仍然需要让尽可能多的有经验的人检查您的代码,以检测细微的并发问题。也就是说,您可以像您所做的那

java - 使用 System.out.print 与 println 的多线程问题

我有以下线程,它每200毫秒打印一个点:publicclassProgress{privatestaticbooleanthreadCanRun=true;privatestaticThreadprogressThread=newThread(newRunnable(){publicvoidrun(){while(threadCanRun){System.out.print('.');System.out.flush();try{progressThread.sleep(200);}catch(InterruptedExceptionex){}}}});publicstaticvoid

java - 多线程如何破坏Hashmap的内部结构

在Java8fortheReallyImpatient中,Horstmann写道:IfmultiplethreadsmodifyaplainHashMap,theycandestroytheinternalstructure.Someofthelinksmaygomissing,orevengoincircles,renderingthedatastructureunusable.(Section6.2.1)我能理解不同步的并发访问会破坏我的数据。如果两个线程更新相同的值,一个可以覆盖另一个。但是为什么以及如何破坏内部存储器结构? 最佳答案

java - Java 中的多线程 JPEG 图像处理

我在多线程环境中借助图像IO在Java中读取JPEG图像时遇到问题。仅当多个线程尝试读取图像时才会出现问题。症状因不正确的配置文件加载到异常而异:java.awt.color.CMMException:LCMSerror13:Couldn'tlinktheprofiles无论我如何读取图像,通过ImageIO.read或使用ImageReader。源数据(图像)是完全隔离且不可变的。这个问题可能与:https://bugs.openjdk.java.net/browse/JDK-8041429和https://bugs.openjdk.java.net/browse/JDK-80322

java - 使用 JavaFX 任务正确执行多线程和线程池

我有一个选项供用户从FileChooser提交多个文件以供某些代码处理。结果将是读取文件的IO,然后是对存储数据的实际繁重计算。允许用户选择多个文件,并且由于文件处理不依赖于任何其他选择的文件,这让我的生活更容易处理线程。此外,用户需要有一个按钮列表,每个按钮对应一个要取消的任务,以及一个“全部取消”按钮。因此,我必须考虑选择性或集体终止一个或所有任务的能力。最后一个要求是,我不会让用户打开大量文件来阻塞系统。因此,我设计了一个线程数有限的线程池(假设我将任意数量的线程限制在4个)。我不确定如何正确地设置这一切。我有我需要做的事情的逻辑,但使用正确的类是我遇到的问题。我检查过thisr

java - 从屏幕捕获并保存到磁盘多线程

接下来的问题应该是观察屏幕、记录一个事件(测量文本框变为绿色)并记录导致它发生的所有事件,从而制作出导致它发生的事件的“电影”。不幸的是,需要记录整个屏幕。到目前为止,我已经完成了认可的部分。但是我每秒几乎没有两帧。我想要大约25到30fps。我的想法是在两个单独的线程中进行写作和阅读。因为写入事件很少见并且可以在后台运行,所以录制事件可以占用更多时间并运行得更快。不幸的是,整个事情似乎太慢了。我希望能够在事件发生前的10到20秒将屏幕写入磁盘。编辑:如果可能的话,我想尽可能保持平台独立。编辑2:Xuggler似乎有一个独立于平台的jar文件。不幸的是,我真的不知道如何将它用于我的目的

Java:通过多线程并行化快速排序

我正在试验Java中的并行化算法。我从合并排序开始,并在此question中发布了我的尝试.我修改后的尝试是在下面的代码中,我现在尝试在其中并行化快速排序。我的多线程实现或解决此问题的方法是否有新手错误?如果不是,我难道不应该期望双核上的顺序算法和并行算法之间的速度提高超过32%(请参阅底部的计时)?这里是多线程算法:publicclassThreadedQuickextendsThread{finalintMAX_THREADS=Runtime.getRuntime().availableProcessors();CountDownLatchdoneSignal;staticintn