怎么验证StringBuilder是非线程安全的?首先需要明白什么是线程安全,什么是非线程安全,引用 线程安全 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全 就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
工具/原料
安装有Eclipse开发环境的电脑一台
方法/步骤
1
提起来线程安全和不安全,大家可能最常想到的是StringBuffer与StringBuilder,那么先来说下StringBuffer与StringBuilder之间区别:StringBuffer与StringBuilder都是字符串变量,而StringBuilder是线程非安全的,StringBuffer是线程安全的
2
准备一台电脑装有Eclipse开发环境,双击Eclipse快捷键打开Eclipse开发环境;在Eclipse工作空间中创建测试项目,创建测试类文件
3
定义一个线程类,循环执行 StringBuffer 和 StringBuilder 的 append 方法,执行一次线程休眠 10 毫秒
4
定义测试方法,循环新建 10 个线程类并调用 start 方法
5
测试结果,10个线程,每个线程循环1000次,如果线程安全则全部执行完成后字符串长度应该都是 10 * 1000 = 10000,测试结果中显示 StringBuffer 最终长度的确是 10000,StringBuilder 最大长度只有9956,说明 StringBuilder 非线程安全
上一篇:速易宝智能存取柜功能及使用流程
下一篇:腾达无线路由器如何设置上网方式