草庐IT

并行机

全部标签

java - java中的并行处理框架

我是这个话题的新手。我决定为我的项目用java开发一个用于云数据处理应用程序的并行处理框架。该框架必须划分给定的顺序Java代码,并在云中的不同虚拟机中处理该子代码。框架必须根据负载动态分配和释放资源。我的问题是如何开发框架。是否有任何库可用于将java代码调度到云中的不同虚拟机中?如果有任何可用的,请通知我。 最佳答案 Terracotta和Gridgain是优秀的解决方案。yerlikayaoglu引用的那些(Hadoop和hazelcast)在它们的领域中也很出色,但它们都4非常不同并且取决于用例。那是针对map/reduce

Java 8 流和并行流

假设我们有一个像这样的Collection:Set>set=Collections.newSetFromMap(newConcurrentHashMap());for(inti=0;isubSet=Collections.newSetFromMap(newConcurrentHashMap());subSet.add(1+(i*5));subSet.add(2+(i*5));subSet.add(3+(i*5));subSet.add(4+(i*5));subSet.add(5+(i*5));set.add(subSet);}并处理它:set.stream().forEach(subS

java - tomcat升级后并行流不设置Thread.contextClassLoader

在tomcat从8.5.6升级到8.5.28之后,并行流停止为线程提供contextClassLoader:因为Warmer::run无法加载其中的类。warmers.parallelStream().forEach(Warmer::run);您是否知道Tomcat为新线程的contextClassLoader提供了什么?ParallelStream在最新的Tomcat中使用ForkJoinPool。 最佳答案 CommonForkJoinpool存在问题,可能会导致内存泄漏以及应用程序能够从其他上下文/应用程序加载类和资源(如果您

Java 并行文件处理

我有以下代码:importjava.io.*;importjava.util.concurrent.*;publicclassExample{publicstaticvoidmain(Stringargs[]){try{FileOutputStreamfos=newFileOutputStream("1.dat");DataOutputStreamdos=newDataOutputStream(fos);for(inti=0;ifuture1=executor.submit(ex1);Futurefuture2=executor.submit(ex2);intcount1=future

Java 8 并行流并发分组

假设我有一个类ClassPerson{Stringname;Stringuid;Stringphone;}我正在尝试按类(class)的所有领域进行分组。我如何在JAVA8中使用并行流来转换一个ListintoMap>其中映射的键是类中每个字段的值。JAVA8以下示例按单个字段分组,我如何将一个类的所有字段放入单个Map中?ConcurrentMap>byGender=roster.parallelStream().collect(Collectors.groupingByConcurrent(Person::getGender)); 最佳答案

java - Pollard-Rho 分解并行化

我最近偶然发现了apaper关于Pollard'sRhoalgorithm的并行化,考虑到我的具体应用,除了我没有达到所需的数学水平这一事实之外,我想知道这种特殊的并行化方法是否有助于我的具体情况。我正在尝试找出一个非常大的数的两个因子-半素数。基于我对这篇论文的一点了解,我的假设是这种并行化在具有许多较小因子的数字上效果很好,而不是在两个非常大的因子上。这是真的吗?我应该使用这种并行化还是使用其他东西?我什至应该使用Pollard的Rho,还是有更好的不同因式分解算法的并行化? 最佳答案 维基百科文章陈述了两个具体示例:Numbe

java - Oracle DB 是否支持每个连接的多个(并行)操作?

我的Java应用程序需要将光标保持到Oracle数据库一段时间。在此期间必须进行其他DB语句。这需要单独的数据库连接还是可以使用相同的(游标的)?谢谢。 最佳答案 唯一的限制是单个语句在给定时间只能有一个ResultSet。请注意,一条语句可以生成多个结果集,但您必须按顺序访问它们(使用getNextResult())为了能够拥有多个打开的结果集/游标,您需要多个java.sql.Statement对象。单个连接只能有一个Activity(即运行)语句。因此,如果您需要多个打开的游标(ResultSet),则需要使用各自的State

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

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

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

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

java - 为并行处理数据选择最佳线程数

假设我有一项处理100万个句子的任务。对于每个句子,我都需要对其进行处理,而不管它们以何种特定顺序处理。在我的Java程序中,我有一组futures从我的主要工作block中分离出来,带有一个可调用的,它定义了要在一大块句子上完成的工作单元,我正在寻找一种优化数量的方法我分配的线程处理大块的句子,然后重新组合每个线程的所有结果。在我看到yield递减之前,我可以使用的最大线程数是多少才能在速度方面提供最佳性能?另外,是什么导致分配的线程越多(即一次可以完成更多线程)的逻辑不正确? 最佳答案 在实践中,可能很难找到最佳线程数,甚至每次