前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回顾以前的线程安全的类

回顾以前的线程安全的类

作者头像
黑泽君
发布2018-10-11 11:41:01
3390
发布2018-10-11 11:41:01
举报
文章被收录于专栏:黑泽君的专栏黑泽君的专栏

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

  StringBuffer/StringBuilder

  Vector

  Hashtable

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

示例代码如下:

代码语言:javascript
复制
 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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档