Я новичок в Java. Пожалуйста, помогите мне решить мою проблему. Я хочу выполнить хешированный поиск шаблонов, присутствующих в файлах. Шаблоны предоставляются во время выполнения. Поиск выполняется в нескольких файлах, и каждый файл составляет почти 1 МБ. Если я выполняю функцию поиска поочередно по всем файлам, это занимает много времени. Я хотел выполнить операцию поиска параллельно во всех таких 12 файлах. Просьба указать, как сократить время выполнения.Параллельное выполнение одних и тех же операций над несколькими файлами в java
0
A
ответ
0
Вы можете использовать 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
.
+0
благодарит за помощь ур – Ivy
Возможно, у вашей машины есть место на 1000 МБ, если не 10 000 МБ. Дома у меня есть более 100 000 МБ памяти. 1 МБ достаточно мал, что вам не нужно беспокоиться о размере. –
@PeterLawrey У вас есть машина с 100 ГБ оперативной памяти? – weston
@weston Мой 9 лет имеет старый компьютер, который имеет двойной экран и имеет 24 ГБ памяти. Я думаю, что пришло время обновить до 256 ГБ. Я сделал этот тест дома;) https://vanilla-java.github.io/2017/01/27/Chronicle-Queue-storing-1-TB-in-virtual-memory-on-a-128-GB- machine.html Вам может быть интересно узнать, какая JVM, которая превышает 1 ТБ виртуальной памяти, похожа на 'top';) –