我无法获得结果。我应该得到
0 1 2 3 .....3000
运行代码后,我明白了:
65488
65489
65489
5528
65529
65529
65529
65530
65531
65531
65531
65532
65532
65532
65533
6553......
对于我的作业,我需要使用以下条件构建(总和)代码:
它读取文件的最后一个数据,并在数据中添加1
0必须是文件的第一个数据 ex)0 1 2 .....
它运行程序1000次(0到1000所以总共1001条记录)
数据文件"打开"并且"关闭"必须在" Load"和" Store"功能分别。
有人请帮助我:(
Class Race_Condition
import java.io.*;
public class Race_Condition {
static int x=0;
public int Load(int x) throws Exception {
FileInputStream fis = new FileInputStream("src/out");
int count;
byte[] b = new byte[1024];
while ((count = fis.read(b)) != -1) {
for (int i = 0; i < count; i++) {
x= (char) b[i];
}
}
fis.close();
return x;
}
public void Store(int data) throws IOException {
FileOutputStream fos = new FileOutputStream("src/out");
fos.write(x);
fos.close();
System.out.println(x);
}
public int Add(int i,int j) {
return i+j ;
}
public void sum() throws Exception {
for (int i=0 ; i<1000 ; i++) {
Race_Condition.x=Load(x);
Race_Condition.x=Add(x,1);
Store(x);
}
}
}
类Race_Condtion2
import java.io.*;
public class Race_Condition2 extends Thread{
Race_Condition R= new Race_Condition();
public void run() {
try {
R.sum();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
主要课程
import java.io.*;
public class Race_ConditonTest
{
public static void main(String[] args)throws IOException
{
Race_Condition2 R1 = new Race_Condition2();
Race_Condition2 R2 = new Race_Condition2();
Race_Condition2 R3 = new Race_Condition2();
R1.start();
R2.start();
R3.start();
}
}