2017-02-12 22 views
0

私はJavaの初心者です。私の問題を解決するのを助けてください。 ファイルに存在するパターンのハッシュベースの検索を実行したいと思います。パターンは実行時に提供されます。 検索は複数のファイルに対して実行され、各ファイルはほぼ1 MBです。すべてのファイルに対して順次検索機能を実行すると、時間がかかります。私は、このような12個のファイルすべてに対して検索操作を並行して実行したかったのです。 実行時間を短縮する方法を教えてください。並列Javaの複数のファイルで同じ操作を実行

+0

マシンには、10,000 MBでない場合は1,000 MBの領域があります。私は家で100,000 MB以上のメモリを持っています。 1 MBは十分に小さく、サイズについて心配する必要はありません。 –

+0

@PeterLawrey 100GBのRAMを搭載したマシンがありますか? – weston

+1

@ weston私の9才は私の古いPCを持っており、デュアルスクリーンで24 GBのメモリを持っています。私は256 GBにアップグレードする時だと思う。私は自宅でこのテストを行った;)https://vanilla-java.github.io/2017/01/27/Chronicle-Queue-storing-1-TB-in-virtual-memory-on-a-128-GB- machine.html仮想メモリが1 TB以上あるJVMが 'top'のように見えるのは興味があります; –

答えて

0

Threadsを使用できます。彼らはお互いに平行に走っています。ここで

  • は例です:

    Thread thread = new Thread() { 
         public void run(){ 
          //Here you put your code 
         } 
    }; 
    thread.start(); 
    
  • OR、あなたは、Java 8を使用している場合:

    Thread thread = new Thread(() -> { 
         //Here you put your code 
    }); 
    thread.start(); 
    
  • OR 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(); 
    
  • ORRunnableオーバーライド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

ありがとうurヘルプ – Ivy

関連する問題