📄 personalinfotest.java
字号:
public class PersonalInfoTest {
public static void main(String[] args) {
final PersonalInfo person = new PersonalInfo();
// 假设会有两个线程可能更新person对象
Thread thread1 = new Thread(new Runnable() {
public void run() {
while(true)
person.setNameAndID("Justin Lin", "J.L");
}
});
Thread thread2 = new Thread(new Runnable() {
public void run() {
while(true)
person.setNameAndID("Shang Hwang", "S.H");
}
});
System.out.println("开始测试.....");
thread1.start();
thread2.start();
}
}
class PersonalInfo {
private String name;
private String id;
private int count;
//要求Name和ID的第一个字必须一样
public PersonalInfo() {
name = "nobody";
id = "N/A";
}
synchronized
public void setNameAndID(String name, String id) {
this.name = name;
this.id = id;
if(!checkNameAndIDEqual())
System.out.println("("+count + ") illegal name or ID.....");
else;
// System.out.println("("+count + ")太平无事.....");
count++;
}
private boolean checkNameAndIDEqual() {
return (name.charAt(0) == id.charAt(0)) ?
true : false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -