I have a Java code which is calling two methods of a class. Like following,
import java.io.*;
class Example
{
public static void main(String args[])
{
try{
FileOutputStream fos = new FileOutputStream("1.dat");
DataOutputStream dos = new DataOutputStream(fos);
for(int i =0 ; i < 100 ; i++){
dos.writeInt(i);
}
dos.close();
FileOutputStream fos1 = new FileOutputStream("2.dat");
DataOutputStream dos1 = new DataOutputStream(fos1);
for(int i =100 ; i < 200 ; i++){
dos1.writeInt(i);
}
dos1.close();
Exampless ex = new Exampless();
ex.createArray(0);
ex.ReadData("1.dat");
ex.ReadData("2.dat");
}catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
class Exampless{
public static int []arr = new int [100] ;
void createArray(int z){
for(int i =z ; i < z+100 ; i++)
arr[i-z] = i ;
}
public synchronized void ReadData(String name){
try{
int cnt = 0;
FileInputStream fin = new FileInputStream(name);
DataInputStream din = new DataInputStream(fin);
for(int i = 0 ; i < 100 ; i++){
int c = din.readInt();
if(c == arr[i])
cnt++ ;
}
System.out.println("File name: " + name + " No. of Matches: " + cnt) ;
}catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
In the first method, the code will create a shared array and in the second method it will compare it with a file.
Now, I want to run those two ReadData() methods in a parallel manner, using multiple threads. Can anybody help me do that. Possibly with some code modification.
1 Answer