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

📄 example9_13.java

📁 不错的教程 适合中高级人员的使用
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
public class Example9_13
{
	public static void main(String args[])
   {  new FrameMoney();	 
}
}
class FrameMoney extends Frame implements Runnable,ActionListener
{  int money=100;TextArea text1,text2;
   Thread 会计,出纳;
   int weekday;
   Button start=new Button("开始演示");
  FrameMoney()
   {  会计=new Thread(this); 出纳=new Thread(this);//创建两个线程:会计、出纳。
      text1=new TextArea(12,15); text2=new TextArea(12,15);
	  setLayout(new FlowLayout());
	  add(start);
      add(text1);add(text2);
	  setVisible(true);
	  setSize(360,300);
	  validate();
	  addWindowListener(new WindowAdapter()
                      {   public void windowClosing(WindowEvent e)
                           { setVisible(false);
                           }
                      }
                   );
	  start.addActionListener(this);

   }
   public void actionPerformed(ActionEvent e)
	{
	   if(!出纳.isAlive())
		{
		   会计=new Thread(this);
		   出纳=new Thread(this);
	   }
	   try
		{
		   会计.start();
		   出纳.start();
	   }
	   catch(Exception exp){}
   }
   public synchronized void 存取(int number) //存取方法。
   {  if(Thread.currentThread()==会计)
       { text1.append("今天是星期"+weekday+"\n");
	     for(int i=1;i<=3;i++) //会计使用存取方法存入90元,存入30元,稍歇一下,
            {  money=money+number;        //这时出纳仍不能使用存取方法,
               try {  Thread.sleep(1000);  //因为会计还没使用完存取方法。
                   }             
               catch(InterruptedException e){}
               text1.append("账上有"+money+"万"+"\n");
            }
       }
      else if(Thread.currentThread()==出纳)
      {   text2.append("今天是星期"+weekday+"\n");
		  for(int i=1;i<=2;i++) //出纳使用存取方法取出30元,取出15元,稍歇一下,
            {  money=money-number/2;      //这时会计仍不能使用存取方法,
               try { Thread.sleep(1000); //因为出纳还没使用完存取方法。
                   }
               catch(InterruptedException e){}
               text2.append("账上有"+money+"万"+"\n");
            }
      }
   }
   public void run()
   {  if(Thread.currentThread()==会计||Thread.currentThread()==出纳)
         {  for(int i=1;i<=3;i++) //从周一到周三会计和出纳都要使用帐本。
                {   weekday=i;
					存取(30);
                }
         } 
   }
} 

⌨️ 快捷键说明

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