📄 mediregistersyn.java
字号:
class Reg{
public synchronized int modify(int number, int maxnum){
try{
if(number<maxnum){
Thread.sleep((int)(Math.random()*1000));
number++;
System.out.println(Thread.currentThread().getName()+",您的挂号成功,号码是第"+number+"位!");
}
else
System.out.println(Thread.currentThread().getName()+",今天挂号已满!");
}catch(InterruptedException e)
{
System.out.println(e.getMessage());
}
return number ;
}
}
public class MediRegisterSyn implements Runnable{
int number;
private int maxnum=40;
Reg rr;
MediRegisterSyn(Reg r){
rr = r;
}
public void setMaxnum(int mx){
maxnum = mx;
}
public int getMaxnum(){
return maxnum;
}
public void run(){
synchronized(rr){
number = rr.modify(number,maxnum);
}
}
public static void main(String[] args){
Reg r = new Reg();
MediRegisterSyn theReg = new MediRegisterSyn(r);
theReg.setMaxnum(2);
Thread myRegister1 = new Thread(theReg,"Mary");
Thread myRegister2 = new Thread(theReg,"Lily");
Thread myRegister3 = new Thread(theReg,"Tom");
myRegister1.start();
myRegister2.start();
myRegister3.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -