zoukankan      html  css  js  c++  java
  • 回顾以前的线程安全的类

    回顾前面的线程安全问题(看看源码)

      StringBuffer/StringBuilder

      Vector

      Hashtable

      以及Collections中的让集合同步的方法

    示例代码如下:

     1 package cn.itcast_12;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 import java.util.Hashtable;
     6 import java.util.List;
     7 import java.util.Vector;
     8 
     9 public class ThreadDemo {
    10     public static void main(String[] args) {
    11         // 线程安全的类
    12         StringBuffer sb = new StringBuffer(); // 几乎所有的方法都加了synchronized,所以线程安全,但效率低
    13         Vector<String> v = new Vector<String>(); // 几乎所有的方法都加了synchronized,所以线程安全,但效率低
    14         Hashtable<String, String> h = new Hashtable<String, String>(); // 几乎所有的方法都加了synchronized,所以线程安全,但效率低15 
    16         // Vector是线程安全的时候才会去考虑使用的,但是呢,即使要安全,也不用Vector。
    17         // 为什么呢?那么到底用谁呢?
    18         // Collections工具类的让集合同步的方法,以List举例:
    19         // public static <T> List<T> synchronizedList(List<T> list)
    20         List<String> list1 = new ArrayList<String>(); // 线程不安全的List
    21         List<String> list2 = Collections.synchronizedList(new ArrayList<String>()); // 线程安全的List
    22         // 通过Collections类的让集合同步的方法,就把线程不安全的List变成线程安全的List了,所以我们不用Vector!
    23     }
    24 }

  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8724823.html
Copyright © 2011-2022 走看看