多线程银行转账的代码,求帮助
模拟实现多线程处理银行的实时转账交易,假设银行有20个账户,每个账户均有本金1000元,程序将实现各个账号之间不同金额的转账交易。要求如下:
(1) 主线程从一个文件中读取交易信息,交给多个子线程处理,每个子线程负责处理一个交易。主线程和多个子线程之间通信方式基于生产者/消费者模型采用ArrayBlockingQueue实现。
创建一个文件保存大量交易信息(至少100条),一行表示一条交易,格式如下:
10 25 2500
表示将2500元从账号10转到了账号25。
提示:主线程把最后一条交易信息放在Queue里后,应采用适当的方式告知子线程,比如最后一条交易可以设定为(-1,0,0),子线程不能用null来判断Queue是否为空)。
(2) 建议创建如下几个类:
账户Account:包括账号ID,当前余额Balance、已交易次数TransanctionNum。
银行Bank:包括所有账户和保存主线程和子线程之间交易信息的ArrayBlockingQueue。
(3) 子线程数量可作为参数传入,或者采用用户从键盘输入形式。
运行结果应显示所有账户信息,按照升序排列的账号、当前余额、交易次数。
运行结果示例如下:
请输入线程数量:
10
acct:01 bal:251 trans:1
acct:02 bal:999 trans:1
acct:03 bal:3005 trans:1
acct:04 bal:1200 trans:1
acct:05 bal:1985 trans:1
下面是txt文件
1 2 425
1 6 125
5 7 161
8 15 421
4 3 210
3 4 253
1 9 79
8 13 180
10 1 325
20 1 500
11 2 321
5 16 48
6 17 293
12 20 20
14 11 346
16 5 73
4 18 222
3 19 134
7 6 74
-1 -1 -1