经常看到介绍 ArrayList 和HashMap是异步,Vector和HashTable是同步,这里同步是线程安全的,异步不是线程安全的,举例说明:

当创建一个Vector对象时候,

Vector ve=new Vector();
ve.add("1");

当在多线程程序中,第一个线程调用修改对象ve的时候,就为其上了锁,其他线程只有等待。

当创建一个ArrayList对象时候,

ArrayList list=new ArrayList();
list.add("1");

当在多线程程序中,第一个线程调用修改对象list的时候,没有为其上锁,其他线程访问时就会报错。

eg:list.remove("1"),然后再由其他线程访问list对象的1时就会报错。

java 关于同步异步的理解的更多相关文章

  1. 关于vue生命周期中的同步异步的理解

    在vue官网中介绍生命周期的图如下: 主要测试代码如下: 主要是测试前四个生命周期beforeCreate,created,beforeMount,mounted,里面同步和异步的执行顺序,其它的类似 ...

  2. setTimeout、同步、异步的理解

    console.log('111'); setTimeout(()=>{ console.log('222') },1000); console.log('333'); setTimeout(( ...

  3. Java中线程同步的理解 - 其实应该叫做Java线程排队

    Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...

  4. java中线程同步的理解(非常通俗易懂)

    转载至:https://blog.csdn.net/u012179540/article/details/40685207 Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运 ...

  5. Java中同步的基本概念监视器–最简单粗暴的理解方法

    大学有一门课程叫操作系统,学习过的同学应该都记得,监视器是操作系统实现同步的重要基础概念,同样它也用在JAVA的线程同步中,这篇文章用一种类推的思想解释监视器"monitor". ...

  6. Java 多线程同步和异步详解

    java线程 同步与异步 线程池 1)多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成 ...

  7. java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)

    概念 JMM规范解决了线程安全的问题,主要三个方面:原子性.可见性.有序性,借助于synchronized关键字体现,可以有效地保障线程安全(前提是你正确运用) 之前说过,这三个特性并不一定需要全部同 ...

  8. 沉淀再出发:关于java中的AQS理解

    沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的 ...

  9. 多线程系列之 java多线程的个人理解(二)

    前言:上一篇多线程系列之 java多线程的个人理解(一) 讲到了线程.进程.多线程的基本概念,以及多线程在java中的基本实现方式,本篇主要接着上一篇继续讲述多线程在实际项目中的应用以及遇到的诸多问题 ...

随机推荐

  1. 最快下载速度100Mbps!4G LTE技术全解析

    1导读,关于4G的几个关键概念 [PConline资讯]100Mbps下载速度是什么概念?比3G网速快50倍又是什么概念?比3G通信方式更灵活.通信频谱更宽绰.通信质量更高效.通信费用更便宜是怎样一个 ...

  2. Javascript模块化编程:require.js的用法

    摘自:http://blog.jobbole.com/30046/ 这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库 ...

  3. LNMP的的编译安装全过程

    一.对系统进行更新 yum update -y lsb_release -a 二.禁用SELINUX sed -i '/SELINUX/s/enforcing/disabled/' /etc/seli ...

  4. iOS高级教程:处理1000张图片的内存优化

    一.项目需求 在实际项目中,用户在上传图片时,有时会一次性上传大量的图片.在上传图片前,我们要进行一系列操作,比如:旋转图片为正确方向,压缩图片等,这些操作需要将图片加载到内存中,下面对内存的使用做详 ...

  5. Java IDE选择,常用Java IDE排行榜

    Java IDE众多,java开发主要用.最多用.国内较流行.本人常用的java IDE如下: 开发java大项目的IDE一般都用eclipse或netbeans(几乎我所在的公司都是在用eclips ...

  6. MySQL 获取子分类ID的所有父分类ID和Name的集合

    CREATE DEFINER=`sa`@`%` PROCEDURE `proc_Product_leimu_ParentIds`( IN pID INT ) BEGIN ) vars, product ...

  7. C#代码规范 程序员必备的秘笈

    1.引言 本文是一套面向C# programmer和C# developer进行开发所应遵循的开发规范 按照此规范来开发C#程序可带来以下益处: 代码的编写保持一致性,提高代码的可读性和可维护性,在团 ...

  8. pythonl练习笔记——multiprocessing 多进程拷贝文件

    分两份拷贝文件,父进程拷贝文件的前半部分,子进程拷贝文件的后半部分. import os import time #获取文件大小 size = os.path.getsize('wait.py') # ...

  9. Jmeter----HTTP Request Defaults

    一.HTTP Request Defaults的作用: 该组件可以为我们的http请求设置默认的值.假如,我们创建一个测试计划有很多个请求且都是发送到相同的server,这时我们只需添加一个Http ...

  10. 图解IIS配置过程

    环境介绍: 操作系统:win7,64位.IIS7 开发软件:VS2010,32位 图解IIS配置过程: 此过程之前确保已安装了IIS. 1.在"控制面板"中找到"管理工具 ...