常用集合【LinkedList 线程不安全】
来源:互联网 发布:php小说源码 编辑:程序博客网 时间:2024/06/05 17:43
代码如下:
package com.sxl.TestUtils;import java.util.LinkedList;import java.util.List;public class testMain {// 写一个简单的程序,测试LinkedList是否线程安全。public static void main(String[] args) {LinkedList linkList = new LinkedList();new Thread(new runLinkList(linkList)).start();new Thread(new runLinkList(linkList)).start();}}class runLinkList implements Runnable {// 定义一个LinkedList变量private LinkedList linklist;// 标志boolean flag;int count;// 构造函数public runLinkList(LinkedList linklist) {this.linklist = linklist;}@Overridepublic void run() {while (true) {if (!flag) { linklist.add("abc");System.out.println(Thread.currentThread().getName() + "..." + linklist + "::" + count++);flag = true;}if (flag) {// 这里给你分析下,线程0到这里停,线程1到这里也停,这时线程0醒了继续执行,执行一圈回来停了,这时集合中只有一个// “abc”字符串,线程1醒了接着执行,输出集合中的内容然后删除集合中的字符串,现在集合为空,线程1又停了,线程0醒了输出集合// 再删除的时候集合中就什么都没了删除不成功。说明线程是不安全的,需要加锁,说明线程是不同步的。linklist.remove("abc");try {//休息1sThread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "..." + linklist + "....." + count++);flag = false;}}}}报错如下:
0 0
- 常用集合【LinkedList 线程不安全】
- 包装线程不安全的集合
- 常用集合※【LinkedList】
- java1.8 常用集合源码学习:LinkedList
- LinkedList多线程不安全的解决办法
- 基础知识总结:线程安全的集合与线程不安全的集合
- Java 线程组,Callable,Future,线程池,ThreadLocal类,包装线程不安全的集合
- Java 线程组,Callable,Future,线程池,ThreadLocal类,包装线程不安全的集合
- 线程安全&线程不安全
- 集合 --- LinkedList
- LinkedList集合
- 集合-LinkedList
- 浅析集合不安全例子
- 常用集合ArrayList,LinkedList,HashMap,HashSet源码分析
- 常用集合ArrayList,LinkedList,HashMap,HashSet源码分析
- qsort 线程不安全
- 线程不安全函数
- 解决ArrayList线程不安全
- 文件和流
- 专家谈信息安全:一上网,基本上等同于裸奔
- 【OpenCV学习笔记 014】人脸人眼识别
- [python]global与nonlocal关键字
- linux常用命令
- 常用集合【LinkedList 线程不安全】
- this指针
- 【CUDA开发】 CUDA Thrust 规约求和
- 精选30道Java笔试题解答
- 字符编码 ASCII/ UNICODE/ Multi-Byte (二)
- MATLAB GUI杂记
- [计蒜客] 最大子阵列(补充与扩展)
- 欧盟:谷歌不得向厂商提供经济鼓励,以预装其搜索服务
- Spring的依赖注入(即DI)