创建2个线程a,b,2个线程同时写数据到write.txt,a线程写入字符串"How are you",b线程写入字符串"I am fine!",2个线程有序执行,一句How are you,对应一句 I am fine!。
public static void main(String[] args) {
/**
* 创建锁对象
*/
Object object = new Object();
/**
* 创建线程a
*/
new Thread(new Runnable() {
@Override
public void run() {
try {
synchronized (object){
System.out.println("How are you");
FileWriter fileWriter = new FileWriter("g://write.txt", true);
PrintWriter printWriter = new PrintWriter(fileWriter);
/*a线程写入字符串"How are you"*/
printWriter.print(new StringBuilder().append("How are you").toString() + "\n");
fileWriter.close();
printWriter.close();
object.notify();
}
} catch (Exception e) {
e.printStackTrace();
}
}
},"a").start();
/**
* 创建线程b
*/
new Thread(new Runnable() {
@Override
public void run() {
try {
synchronized (object){
System.out.println("I am fine!");
FileWriter fileWriter = new FileWriter("g://write.txt", true);
PrintWriter printWriter = new PrintWriter(fileWriter);
/*b线程写入字符串"I am fine!*/
printWriter.print(new StringBuilder().append("I am fine!").toString() + "\n");
fileWriter.close();
printWriter.close();
object.wait();
}
} catch (Exception e) {
e.printStackTrace();
}
}
},"b").start();
}