我有一个 Java 代码,它调用一个类的两个方法。像下面这样,
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());
}
}
}
在第一种方法中,代码将创建一个共享数组,在第二种方法中,它将与文件进行比较。
现在,我想ReadData()
使用多个线程以并行方式运行这两种方法。任何人都可以帮我做到这一点。可能有一些代码修改。