Java becerilerimi geliştirmek için çalışıyorum ama bu çok iş parçacıklı uygulamayı nasıl kullanacağım konusunda biraz emin değilim. Temel olarak, program bir metin dosyası okur ve en büyük sayıyı bulur. 10 iş parçacığı oluşturmak için arama algoritmamda bir döngü ekledim ancak aslında 10 iş parçacığı oluşturup oluşturmadığından emin değilim. Buradaki fikir, yürütme süresinin iyileştirilmesidir, ya da en azından bunun gerçekleşmesi gerektiği varsayılmaktadır. Doğru bir şekilde yapıp yapmadığımı ve yürütme süresinin gerçekten iyileşip iyileşmediğini kontrol etmek için var mı?Bir Diziyi İşlemek için 10 Başlığı Kullanma
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ProcessDataFile {
public static void main(String[] args) throws IOException {
int max = Integer.MIN_VALUE;
int i = 0;
int[] numbers = new int[100000];
String datafile = "dataset529.txt"; //string which contains datafile
String line; //current line of text file
try (BufferedReader br = new BufferedReader(new FileReader(datafile))) { //reads in the datafile
while ((line = br.readLine()) != null) { //reads through each line
numbers[i++] = Integer.parseInt(line); //pulls out the number of each line and puts it in numbers[]
}
}
for (i = 0; i < 10000; i++){ //loop to go through each number in the file and compare it to find the largest int.
for(int j = 0; j < 10; j++) { //creates 10 threads
new Thread();
}
if (max < numbers[i]) //As max gets bigger it checks the array and keeps increasing it as it finds a larger int.
max = numbers[i]; //Sets max equal to the final highest value found.
}
System.out.println("The largest number in DataSet529 is: " + max);
}
}
[Concurrency Trail] 'e göz atarak (https://docs.oracle.com/javase/tutorial/essential/concurrency/). Basitçe 'yeni bir Konu() 'oluştur, aslında hiçbir şey yapmıyor. Göz önünde bulundurmanız gereken şeylerden biri, verilen dizinin belirli bir aralığındaki en büyük değeri bulmaktan sorumlu bir iş parçacığı oluşturmaktır. Böylelikle (sizin durumunuzda), en büyük – MadProgrammer
Ah okunun hangisi olduğunu belirleyeceğiniz 10 değerle (her bir iş parçacığından 1) sonlandırın, böylece her bir iş parçacığı, kümenin 1/10'u boyunca olsun. Sonra bulunan her bir iplik değerini karşılaştırın? – Vortex11
Temel olarak, her bir iş parçacığı tamamlandığında bilmeniz gereken biraz daha karmaşıktır, ancak bu temel fikirdir – MadProgrammer