同步就是许多线程同时共用一个资源,一个线程在用别的线程就要等待。异步相反,可以不用等待。

同步:发送一个请求,等待返回,然后才能再发送下一个请求;
异步:发送一个请求,不等待返回,随时可以再发送下一个请求;

同步可以避免出现死锁,读脏数据的发生。一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错。而同步就会按顺序来修改。

异步则是可以提高效率了。现在cpu都是双核,四核,异步处理的话可以同时做多项工作。当然必须保证是可以并发处理的。

同步和异步最大的区别就在于。一个需要等待,一个不需要等待。

比如电话,就是一个同步例子。发起者需要等待接收者,接通电话后,通信才开始。需要等待接收者的返回信息。

广播,就是一个异步例子。发起者不关心接收者的状态。不需要等待接收者的返回信息。

经常看到介绍 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时就会报错。

IT题库6-同步和异步的更多相关文章

  1. 使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_116 之前的一篇文章详细阐述了微信小程序开发的准备和入门以及环境搭建,这一次我们介绍如何将微信小程序如何上线,同时配合weui美化 ...

  2. 网络IO之阻塞、非阻塞、同步、异步总结

    网络IO之阻塞.非阻塞.同步.异步总结 1.前言 在网络编程中,阻塞.非阻塞.同步.异步经常被提到.unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一 ...

  3. 【Mocha.js 101】同步、异步与 Promise

    前情提要 在上一篇文章<[Mocha.js 101]Mocha 入门指南>中,我们提到了如何用 Mocha.js 进行前端自动化测试,并做了几个简单的例子来体验 Mocha.js 给我们带 ...

  4. IO之同步、异步、阻塞、非阻塞 (2)

    [原创链接: http://www.smithfox.com/?e=191, 转载请保留此声明, 谢谢! ] I/O Model 是一个很大的话题, 也是一个实践性很强的事情, 网上有各种说法和资料, ...

  5. IO多路复用,同步,异步,阻塞和非阻塞 区别

    一.什么是socket?什么是I/O操作? 我们都知道unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO.管道.终端,对我们来说,一切都是 ...

  6. 前端综合学习笔记---异步、ES6/7、Module、Promise同步 vs 异步

    同步 vs 异步 先看下面的 demo,根据程序阅读起来表达的意思,应该是先打印100,1秒钟之后打印200,最后打印300.但是实际运行根本不是那么回事 console.log(100) setTi ...

  7. 网络I/O中的同步、异步、阻塞和非阻塞概念

    在学习网络编程过程中,经常会把这几个概念搞混淆. 同步I/O与异步I/O区别 我们先来看一下操作I/O时涉及的对象和步骤(这里我们以read为例): 这里会涉及到两个系统对象,一个是调用这个I/O的应 ...

  8. IO多路复用,同步,异步,阻塞和非阻塞 区别(转)

    转自:http://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral 同步.异步 是 ...

  9. IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别参考

    参考https://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral IO复用,AI ...

随机推荐

  1. 英语口语练习系列-C35-马戏-谈论语言-己亥杂诗

    词汇-马戏 circus audience spectator spotlight bandstand magic magician clown spacious attractive product ...

  2. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

    A. Odd Palindrome 所有回文子串长度都是奇数等价于不存在长度为$2$的偶回文子串,即相邻两个字符都不同. #include<cstdio> #include<cstr ...

  3. 转:python request属性及方法说明

    转:http://blog.csdn.net/u013398398/article/details/52214582 if  request.REQUEST.has_key('键值'): HttpRe ...

  4. (60)Wangdao.com第十天_JavaScript 函数_作用域_闭包_IIFE_回调函数_eval

    函数        实现特定功能的 n 条语句封装体. 1. 创建一个函数对象 var myFunc = new Function(); // typeof myFunc 将会打印 function ...

  5. 2018-2019-1 20189210 《LInux内核原理与分析》第六周作业

    系统调用实验(下): 将第四章的两个实验集成到MenuOS系统中,将其作为MenuOS系统的两个命令,新版本的menu中已经把两个系统调用添加进去了,只需重新克隆一个新版本的menu. 使用make ...

  6. Math工具类

    public static void main(String[] args) { // 工具类,所有方法都以静态方法提供,没有实例存在的意义 // 不提供任何实例的方法,代表当前类属于无状态的. // ...

  7. appium api笔记

    打印上下文driver.contexts打印当前上下文driver.contextdriver.current_context切换上下文driver.switch_to.context('WEBVIE ...

  8. USACO1.4 1.5 搜索剪枝与数字 洛谷OJ P1214 P1215 P1217 P1218

    USACO1.4 题解 Arithmetic Progressions 题意 让你求长为n的由小于2*m*m的双平方数组成的等差数列有几个 双平方数:形如 B=P*P+Q*Q,p,q>0的数 题 ...

  9. java中String常量的存储原理

    相关题目(运行结果在代码注释后面) 1. package StringTest; public class test1 { public static void main(String[] args) ...

  10. Gitbook在Windows上安装

    GitBook是基于Nodejs,使用Git/Github和Markdown制作电子书的命令行工具. 1.安装Nodejs 首先,安装Nodejs,官网地址:https://nodejs.org/en ...