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

📄 piggybankwithsync.java

📁 此源码为机械工业出版社出版的《Java语言程序设计》第三版所配套的书中所有源代码。
💻 JAVA
字号:
// PiggyBankWithSync.java: Demonstrate avoiding resource conflict
public class PiggyBankWithSync
{
  private PiggyBank bank = new PiggyBank();
  private Thread[] thread = new Thread[100];

  public static void main(String[] args)
  {
    PiggyBankWithSync test = new PiggyBankWithSync();
    System.out.println("What is balance ? " +
      test.bank.getBalance());
  }

  public PiggyBankWithSync()
  {
    ThreadGroup g1 = new ThreadGroup("group");
    boolean done = false;

    for (int i=0; i<100; i++)
    {
      thread[i] = new Thread(g1, new AddAPennyThread(), "t");
      thread[i].start();
    }

    while(!done)
      if (g1.activeCount() == 0)
        done = true;
  }

  // Synchronize: add a penny one at a time
  private static synchronized void addAPenny(PiggyBank bank)
  {
    int newBalance = bank.getBalance() + 1;

    try
    {
      Thread.sleep(5);
    }
    catch (InterruptedException ex)
    {
      System.out.println(ex);
    }

    bank.setBalance(newBalance);
  }

  // A thread for adding a penny to the piggy bank
  class AddAPennyThread extends Thread
  {
    public void run()
    {
      addAPenny(bank);
    }
  }
}

⌨️ 快捷键说明

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