だが、私は機能は、私は、スレッド
Data[] foo(double[] someNumbers, Data[] someData, AnalyzeTool tool, int numOfThreads)
、配列の同じ長さlenを有する与えられていましょう理解していません。
ここで、メソッドを使用してメソッドを呼び出すと、各Data.Objectを処理し、もう一方をData []に書き戻して、Data []指定とData [] writtenを保持します順番に。
スレッドが1つのデータオブジェクトの処理を終了したとします。このスレッドにはまだデータが残っているとは言えませんが、まだ処理されておらず、次のデータオブジェクトを割り当ててロックします。 「ロック」は、データオブジェクトが複数のスレッドによって何度も処理されるのを防ぐ必要があります。
誰かがそれを行う方法の例がありますか?あらゆる建設的な助けを歓迎します。
は、このスレッドには良いチュートリアルです。これはPOSIXスレッドに関するものなので、構文は 'java'には当てはまりませんが、あなたの言語にかかわらず概念は同じです:https://computing.llnl.gov/tutorials/pthreads/ – yano
[ExecutorService'](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html)、[Executors'](https://docs.oracle)を参照してください。 .com/javase/7/docs/api/java/util/concurrent/Executors.html)と['Future'](https://docs.oracle.com/javase/7/docs/api/java/util/ concurrent/Future.html)をjava.util.concurrentパッケージに追加します。 –
各スレッドは、リストの長さだけでなくデータリスト内の位置も知っている必要があります。それで、データが残っていることを彼らが知る方法です。また、スレッドのこのコンテキストで用語「ロック」を完全に理解しているかどうかはわかりません –