打字猴:1.700445469e+09
1700445469 编写高质量代码:改善Java程序的151个建议 [:1700438151]
1700445470 编写高质量代码:改善Java程序的151个建议 建议80:多线程使用Vector或HashTable
1700445471
1700445472 Vector是ArrayList的多线程版本,HashTable是HashMap的多线程版本,这些概念我们都很清楚,也被前辈嘱咐过很多次,但我们经常会逃避使用Vector和HashTable,因为用得少,不熟嘛!只有在真正需要的时候才会想要使用它们,但问题是什么时候算真正需要呢?我们来看一个例子,看看使用线程安全的Vector是否可以解决问题,代码如下:
1700445473
1700445474 public static void main(String[]args){
1700445475
1700445476 //火车票列表
1700445477
1700445478 final List<String>tickets=new ArrayList<String>();
1700445479
1700445480 //初始化票据池
1700445481
1700445482 for(int i=0;i<100000;i++){
1700445483
1700445484 tickets.add(“火车票”+i);
1700445485
1700445486 }
1700445487
1700445488 //退票
1700445489
1700445490 Thread returnThread=new Thread(){
1700445491
1700445492 public void run(){
1700445493
1700445494 while(true){
1700445495
1700445496 tickets.add(“车票”+new Random().nextInt());
1700445497
1700445498 }
1700445499
1700445500 };
1700445501
1700445502 };
1700445503
1700445504 //售票
1700445505
1700445506 Thread saleThread=new Thread(){
1700445507
1700445508 public void run(){
1700445509
1700445510 for(String ticket:tickets){
1700445511
1700445512 tickets.remove(ticket);
1700445513
1700445514 }
1700445515
1700445516 };
1700445517
1700445518 };
[ 上一页 ]  [ :1.700445469e+09 ]  [ 下一页 ]