线程Unsynch : Web服务器客户端 « 网络协议 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 网络协议 » Web服务器客户端屏幕截图 
线程Unsynch


/**
 @version 1.20 1999-04-26
 @author Cay Horstmann
 */

public class UnsynchBankTest {
  public static void main(String[] args) {
    Bank b = new Bank(NACCOUNTS, INITIAL_BALANCE);
    int i;
    for (i = 0; i < NACCOUNTS; i++) {
      TransferThread t = new TransferThread(b, i, INITIAL_BALANCE);
      t.setPriority(Thread.NORM_PRIORITY + i % 2);
      t.start();
    }
  }

  public static final int NACCOUNTS = 10;

  public static final int INITIAL_BALANCE = 10000;
}

class Bank {
  public Bank(int n, int initialBalance) {
    accounts = new int[n];
    int i;
    for (i = 0; i < accounts.length; i++)
      accounts[i= initialBalance;
    ntransacts = 0;
  }

  public void transfer(int from, int to, int amount) {
    if (accounts[from< amount)
      return;
    accounts[from-= amount;
    accounts[to+= amount;
    ntransacts++;
    if (ntransacts % NTEST == 0)
      test();
  }

  public void test() {
    int sum = 0;

    for (int i = 0; i < accounts.length; i++)
      sum += accounts[i];

    System.out.println("Transactions:" + ntransacts + " Sum: " + sum);
  }

  public int size() {
    return accounts.length;
  }

  public static final int NTEST = 10000;

  private int[] accounts;

  private long ntransacts = 0;
}

class TransferThread extends Thread {
  public TransferThread(Bank b, int from, int max) {
    bank = b;
    fromAccount = from;
    maxAmount = max;
  }

  public void run() {
    try {
      while (!interrupted()) {
        int toAccount = (int) (bank.size() * Math.random());
        int amount = (int) (maxAmount * Math.random());
        bank.transfer(fromAccount, toAccount, amount);
        sleep(1);
      }
    catch (InterruptedException e) {
    }
  }

  private Bank bank;

  private int fromAccount;

  private int maxAmount;
}

           
       
Related examples in the same category
1. 基于新IO的Java TTP / HTTPS服务器
2. 连接Web服务器连接Web服务器
3. 读网址保护HTTP认证
4. 阅读网页流阅读网页流
5. 阅读的网页,与套接字频道阅读的网页,与套接字频道
6. 阅读网页非阻塞频道阅读网页非阻塞频道
7. 一个简单的Web服务器一个简单的Web服务器
8. HTML职位
9. Web服务器
10. 从网页保存的二进制文件
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.