在java中对多个文件并行执行相同的操作
我是Java初学者,请帮我解决问题。 我想对文件中存在的模式执行基于哈希的搜索。这些模式在运行时提供。 搜索要在多个文件上执行,每个文件几乎有1MB。如果我在所有文件上连续执行搜索功能,它会花费很多时间。我想对所有这12个文件并行执行搜索操作。在java中对多个文件并行执行相同的操作,java,multithreading,file,Java,Multithreading,File,我是Java初学者,请帮我解决问题。 我想对文件中存在的模式执行基于哈希的搜索。这些模式在运行时提供。 搜索要在多个文件上执行,每个文件几乎有1MB。如果我在所有文件上连续执行搜索功能,它会花费很多时间。我想对所有这12个文件并行执行搜索操作。 请指导我如何缩短执行时间。您可以使用线程。它们彼此平行 这里有一个例子: Thread thread = new Thread() { public void run(){ //Here you put your cod
请指导我如何缩短执行时间。您可以使用
线程。它们彼此平行
- 这里有一个例子:
Thread thread = new Thread() {
public void run(){
//Here you put your code
}
};
thread.start();
Thread thread = new Thread(() -> {
//Here you put your code
});
thread.start();
public class MyThread extends Thread {
public void run() {
//Here you put your code
}
}
//Then, in another class:
MyThread mt = new MyThread();
mt.start();
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();
- 或者,如果您使用的是Java 8:
Thread thread = new Thread() {
public void run(){
//Here you put your code
}
};
thread.start();
Thread thread = new Thread(() -> {
//Here you put your code
});
thread.start();
public class MyThread extends Thread {
public void run() {
//Here you put your code
}
}
//Then, in another class:
MyThread mt = new MyThread();
mt.start();
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();
- 或创建一个
线程
子类并重写run()
方法:
Thread thread = new Thread() {
public void run(){
//Here you put your code
}
};
thread.start();
Thread thread = new Thread(() -> {
//Here you put your code
});
thread.start();
public class MyThread extends Thread {
public void run() {
//Here you put your code
}
}
//Then, in another class:
MyThread mt = new MyThread();
mt.start();
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();
- 或使类实现
Runnable
并重写run()
方法:
Thread thread = new Thread() {
public void run(){
//Here you put your code
}
};
thread.start();
Thread thread = new Thread(() -> {
//Here you put your code
});
thread.start();
public class MyThread extends Thread {
public void run() {
//Here you put your code
}
}
//Then, in another class:
MyThread mt = new MyThread();
mt.start();
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();
您也可以这样做。如果不是10000 MB,您的机器可能有1000 MB的空间。在家里,我有一个超过100000 MB的内存。1 MB足够小,您不必担心大小。@PeterLawrey您有一台100 GB内存的机器吗?@weston My 9 yo有一台我的旧电脑,它是双屏幕的,有24 GB内存。我想是时候升级到256 GB了。我在家做了这个测试;)您可能有兴趣在top
;)上查看超过1 TB虚拟内存的JVM是什么样子的@彼得·劳瑞:哈哈,我的笔记本电脑和台式电脑的总容量(22GB)比你的9Yo少!但至少相同数量的屏幕!有趣的阅读,谢谢。非常感谢你的帮助