【问题标题】:Parallel Execution of same operations on multiple files in java [duplicate]在java中对多个文件并行执行相同的操作[重复]
【发布时间】:2017-06-30 13:09:15
【问题描述】:

我是 Java 初学者。请帮我解决我的问题。 我想对文件中存在的模式执行基于哈希的搜索。模式是在运行时提供的。 搜索将在多个文件上执行,每个文件几乎 1 MB。如果我对所有文件连续执行搜索功能,它会花费很多时间。我想对所有这样的 12 个文件并行执行搜索操作。 请指导我如何减少执行时间。

【问题讨论】:

  • 如果不是 10,000 MB,您的计算机可能有 1,000 MB 的空间。在家里,我有一台内存超过 100,000 MB。 1 MB 足够小,您无需担心大小。
  • @PeterLawrey 你有一台内存为 100GB 的机器?
  • @weston 我 9 岁的我有一台旧 PC,它是双屏的,有 24 GB 内存。我认为是时候升级到 256 GB。我在家里做了这个测试;)vanilla-java.github.io/2017/01/27/… 你可能有兴趣看看top 上超过 1 TB 虚拟内存的 JVM 是什么样子的;)
  • @PeterLawrey 哈哈,我的笔记本电脑和台式机的总和(22GB)比你 9 岁的少!但至少相同数量的屏幕!有趣的阅​​读,谢谢。

标签: java multithreading file


【解决方案1】:

您可以使用Threads。它们彼此平行运行。

  • 这是一个例子:

    Thread thread = new Thread() {
          public void run(){
              //Here you put your code
          }
    };
    thread.start();
    
  • 或者,如果您使用的是 Java 8:

    Thread thread = new Thread(() -> {
          //Here you put your code
    });
    thread.start();
    
  • 或者创建一个Thread 子类覆盖 run() 方法:

    public class MyThread extends Thread {
        public void run() {
            //Here you put your code
        }
    }
    
    //Then, in another class:
    
    MyThread mt = new MyThread();
    mt.start();
    
  • 或创建一个类实现 Runnable覆盖 run() 方法:

    public class MyRunnable implements Runnable {
        public void run() {
            //Here you put your code
        }
    }
    
    //Then, in another class:
    
    Thread th = new Thread(new MyRunnable());
    th.start();
    

你也可以关注official documentation on Threads

【讨论】:

  • 非常感谢您的帮助
猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
相关资源
最近更新 更多