⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example9_14.java

📁 不错的教程 适合中高级人员的使用
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
class 售票员
{  int 五元钱的个数=2,十元钱的个数=0,二十元钱的个数=0; String s=null;
   public synchronized void  售票规则(int money)
   {  if(money==5)     //如果使用该方法的线程传递的参数是5,就不用等待。
        {  五元钱的个数=五元钱的个数+1; 
           s= "给您入场卷您的钱正好";
           MyFrame.text.append("\n"+s);
        }
      else if(money==20)           
        {  while(五元钱的个数<3)
            {  try { wait();    //如果使用该方法的线程传递的参数是20须等待。
                   }
               catch(InterruptedException e){}
            }
           五元钱的个数=五元钱的个数-3;
           二十元钱的个数=二十元钱的个数+1;
           s="给您入场卷"+"  您给我20,找您15元";
           MyFrame.text.append("\n"+s);
        }
       notifyAll();
   }
}
 class MyFrame extends Frame implements Runnable, ActionListener
{  售票员 王小姐;
   Thread 张平,李明;  //创建两个线程。
   static TextArea text;
   Button start=new Button("排队买票");
   MyFrame()
   {  张平=new Thread(this);李明=new Thread(this);
      text=new TextArea(10,30);
      王小姐=new 售票员(); 
	  start.addActionListener(this);
	  add(text,BorderLayout.CENTER);
	  add(start,BorderLayout.NORTH);
	  
	  setVisible(true);
	  setSize(360,300);
	  validate();
	  addWindowListener(new WindowAdapter()
                      {   public void windowClosing(WindowEvent e)
                           { setVisible(false);
                           }
                      }
                   );
   } 
   public void actionPerformed(ActionEvent e)
   {  try{张平.start();李明.start(); }
      catch(Exception exp){}
   }
   public void run()
   {  if(Thread.currentThread()==张平)
        {  王小姐.售票规则(20);
        }
      else if(Thread.currentThread()==李明)
        {  王小姐.售票规则(5);
        }
   }   
}
public class Example9_14 
{
	 public static void main(String args[])
   {  new MyFrame();
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -