这样的代码,起多个线程,为什么结果好像是各个线程共享变量j一样的?这里好像涉及到文件锁 你说各个变量共享变量j,这个j指的是run方法里的那个j吗?如果是这样,你的理解是错误的,因为每个线程都会有自己的栈,栈里面的变量是不共享的,只有堆区里面变量才有可能是线程共享的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你想多个线程同步操作写文件这样的一个动作,可以将写动作用synchronized关键字,public synchronized void write(){FileWriter fw = null;try{fw = new FileWriter(new File("file.txt"));for(int j=0;j<100000;j++){fw.write(j+“ ”+Thread.currentThread().getName()+'\n');}fw.close();..}然后在各个线程运行方法体中调用write方法,这样可以保证写文件的同步性。 你用:fw.write(j+“ ”+this.getName()+'\n');试试. 一个Unicode字符编码问题 为什么会有两种结果啊 (急急急)java执行linux命令的问题 如何在Panel上显示图片 FTP 获取 InputStream 问题。 怎样判断一个字符占用两个字节 java多线程问题,冰天雪地,挥刀斩臂,规求高人 容器焦点失去后如何保留对其中控件的一些修改(高分求助) 问个关于反射的问题 java界面相同按钮怎么可以给不同文本框赋值 麻烦看下错误在哪 在jsp或servlet中怎么样将一个对象序列化并输出到生成的html页面,然后submit再从jsp或servlet读出来呢
public synchronized void write(){
FileWriter fw = null;
try{
fw = new FileWriter(new File("file.txt"));
for(int j=0;j<100000;j++){
fw.write(j+“ ”+Thread.currentThread().getName()+'\n');
}
fw.close();
..
}
然后在各个线程运行方法体中调用write方法,这样可以保证写文件的同步性。