精华内容
下载资源
问答
  • 在面试中,我们经常会被面试官问到:请解释一下同步的含义,此时,一定要注意这可能是个坑,注意!!! 在被问到这个问题时,不要急着回答面试官,一定要向面试官确认一下,同步是那个背景的同步,别没问清楚就...

    在面试中,我们经常会被面试官问到:请解释一下同步的含义,此时,一定要注意这可能是个坑,注意!!!

    在被问到这个问题时,不要急着回答面试官,一定要向面试官确认一下,同步是那个背景的同步,别没问清楚就开始说哦

    1.同步与异步中的同步

    此同步指的是行为的同步

    例如一群人在学跳舞,前面还有一个小姐姐在领舞,学舞的人的动作和领舞人的动作是一样的话,此时就是同步的体现

    ps:进程/线程中的同步也是此处所指的同步

    2.同步通信与异步通信中的同步

    (1)同步

    就是说呢,在发出一个调用时,在没有得到结果之前,该调用就不会返回,而是一直在那里等着,直到调用执行结束,此时也获得了该调用的返回值,即就是同步指的是由调用者主动等待这个调用的结果

    (2)异步

    异步与同步刚好相反,调用在发出之后,这个调用就直接返回了,所以不会立即得到调用结果,而是在调用发出之后,调用结果由被调用者来告诉给调用者,即就是调用结果是由被调用者通过状态、通知来通知给调用者,或通过回调函数处理这个调用

    例如:

    假设你去吃饭,你点了一个炒菜:
      (1)同步就是说你点完饭之后,一直在那里等着厨师给你做,直到厨师做完,你把饭
      自己端走,即就是说结果由你自己主动获取,
       (2)异步呢就是你点完饭之后,去找一个位置坐着,当服务员告诉你饭做好了,
    你去把饭端过来,即就是说,结果由服务员通知给你,你自己使被动的得知调用结果
    的,如果服务员不通知,你是不会知道结果的
    

    阻塞和非阻塞关注的是程序在等待调用结果(消息、返回值)时的状态

    3.阻塞

    阻塞调用就是,在调用结果返回之前,当前线程什么也不会做,而是一直在那里等待,直到调用线程得到结果,此时才会返回

    4.非阻塞

    非阻塞调用就是在等待的时候,可以去做别的事,只是会轮询的去查看调用线程的状态

    5.同步阻塞

    同步阻塞=同步+阻塞
    调用结果由调用者主动获取,且是阻塞式的等待着 ,即就是说调用者会主动的关注调用结果,而且是阻塞式的在那里看着

    6.同步非阻塞

    同步非阻塞=同步+非阻塞
    调用结果是由调用者主动获取的,但是是非阻塞式的等着,此时的动作是调用结果是由调用者主动获取的,但是他不会在那里傻等着,而是会去做别的事,只不过需要时不时的去看一下程序的执行情况

    7.异步阻塞

    异步阻塞=异步+阻塞
    调用结果是由被调用者通知给调用者的,而且是阻塞式的在哪里等着,即就是调用者会一直在那里等着,但是不会去看程序执行的怎么样了,而是由被调用者来通知的

    8.异步非阻塞

    异步阻塞=异步+阻塞
    调用结果是由被调用者告诉调用者的,就是调用者是被动的得知结果的,调用者在等结果的过程中,并不是一直在那里傻等着,而是可以去做自己的事

    例如:
    你等女朋友去吃饭,女朋友现在的状态就是她还没收拾好,你需要等她
    (1)同步阻塞

    就是你在等她的时候,只是单纯的等她,不会去做别的事,而且你会主动的看她有没有收拾好,如果好了那就可以出去了

    (2)同步非阻塞

    就是再等她的同时你可以做别的事,例如一边等她一边做题,但是他有没有收拾好是你自己主动去看的,而不是由她通知你

    (3)异步阻塞

    就是你在等她的时候,什么也不能做,只能做一件事那就是等她,而且不会去关注她什么时候收拾好,等她收拾好,告诉你一声,此时你就会得知她已经可以收拾好了可以出去了,即就是你是被动的知道她收拾好的这个结果的

    (4)异步非阻塞

    就是你在等她的时候,你可以去做别的事,可以一边等她一边做自己的事,但是此时还是不会主动的去关注她什么时候时候好,直到她通知你,她已经可以出去了,此时你才会得知这个结果,你是被动的知道的

    展开全文
  • 4 没有正确同步的含义 A线程写一个变量,B线程读一个变量,但是读和写的发生顺序没有唯一确定。 如果产生这种问题的代码,这个变量就会发生数据竞争(data race)。 5 同步会做什么呢? 有序性:最容易的理解就是...

    4 没有正确同步的含义

    • A线程写一个变量,B线程读一个变量,但是读和写的发生顺序没有唯一确定。
    • 如果产生这种问题的代码,这个变量就会发生数据竞争(data race)。

    5 同步会做什么呢?

    • 有序性:最容易的理解就是互斥的作用 - 一次只有一个线程能占有monitor,其他线程无法进入被这个monitor同步的代码块。
    • 可见性:同步保证之前和同步代码中的数据,可以被其他线程看见;A线程释放monitor的时候,会把本地缓存的数据刷新到主存中。B线程获取monitor时,B所在处理器的本地缓存会失效,必须从主存中reload数据。
    • 对单处理器的系统同样有影响,编译器无法移动获取monitor以及释放monitor之后的代码;

    6 Happen-before原则

    • 保证了前一个操作对后一个操作是可见的,但不保证执行顺序。
    • 线程中的每个操作happens before该线程中在程序顺序上后续的每个操作。
    • 解锁一个监视器的操作happens before随后对相同监视器进行锁的操作。
    • 对volatile字段的写操作happens before后续对相同volatile字段的读取操作。
    • 线程上调用start()方法happens before这个线程启动后的任何操作。
    • 一个线程中所有的操作都happens before从这个线程join()方法成功返回的任何其他线程。
    展开全文
  • 时钟同步的含义

    千次阅读 2010-02-25 09:45:00
    我们通常所说时钟同步有两种,即频率同步和时间同步。 ●频率同步:维持各点频率相同,它们可以是任意相位。由于不管相位,时钟设备在跟踪时钟源过程中,只要调整本地时钟信号与时钟源频率相同即可,即会有...

    我们通常所说的时钟同步有两种,即频率同步和时间同步。    
       
      ●频率同步:维持各点的频率相同,它们可以是任意相位。由于不管相位,时钟设备在跟踪时钟源的过程中,只要调整本地时钟信号与时钟源频率相同即可,即会有跟踪的相位积累。另外,时钟信号在传递线路上,有传输损伤,如光纤的温度漂移等,这些传输损伤也会产生一些相位漂移积累。    
       
      ●时间同步(时刻同步):所谓时间同步,即要求各点之间的绝对时间相同。比如,我们国内都使用北京时间,时钟同步设备就是调整本地的时间时钟,使之与北京时间严格同步,并使各地之间的时间时钟误差维持在很小的范围内,如小于100ns。维持时间同步与维持频率同步相比要困难得多,它要求在维持频率同步的同时,还要严格维持相位同步,不允许有相位积累。要消除时钟设备跟踪过程中带来的相位误差以及传输过程中引入的相位损伤,技术难度相当高。    
       

    展开全文
  • https://www.cnblogs.com/findbetterme/p/10794410.html

    https://www.cnblogs.com/findbetterme/p/10794410.html

    展开全文
  • 以前数据库事物和多线程同步的概念柔和在一起,以为相互关联,实则没有必然联系。 数据库事物解决的数据一致性:假设数据从一个状态迁移到一个状态,涉及到俩个对象,如果没有数据库事物,当某一对象操作完成之后...
  • 原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 第六章译者:Alex没有正确同步的代码对于不同的人来说可能会有不同的理解。在Java内存模型这个语义环境下,我们谈到“没有正确同步”,我们的...
  • SVN图标含义: 灰色向右箭头:本地修改过 灰色向右且中间有个加号箭头:本地比SVN上多出文件 灰色向右且中间有个减号箭头:本地删除了,而SVN上未删除文件 蓝色向左箭头:SVN上修改过 蓝色向左且...
  • ***感叹号(有冲突):这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你提交覆盖了别人修改。...
  • (1)同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面处于假死状态,当这个AJAX执行完后才会解除页面假死状态,代码继续运行。 (2)而异步则是当前AJAX代码运行中的时候其他代码一样...
  • SVN图标含义 灰色向右箭头:本地修改过 蓝色向左箭头:SVN上修改过 灰色向右且中间有个加号箭头:本地比SVN上多出文件 蓝色向左且中间有个加号箭头:SVN上比本地多出文件 灰色向右且中间有个减号箭头:...
  • MySQL同步状态双Yes的假象及seconds_behind_master的含义  近期由于特殊原因有一台主库宕机了一个小时没有处理,说起来这是个挺不好啥意思的事情,但是由于这个事情反而发现个比较诡异的情况,那就是在主库宕机一...
  • 做网络IO编程我们或多或少都会接触到同步、异步、阻塞、非阻塞等相关技术术语,但是到底什么是同步异步阻塞非阻塞,他们怎么定义,有什么区别,很多童鞋可能一直处于一种半懂半懵逼状态。 针对同步,异步,阻塞...
  • 同步安全集合,在多线程下用到这个map是安全,但这个安全指是什么?线程安全指是指get、remove、put等操作时即同一对象,同一时间只有一个线程能在这几个方法上运行,也就是说线程安全是在这集合三个操作...
  • MySQL同步状态双Yes的假象及seconds_behind_master的含义  近期由于特殊原因有一台主库宕机了一个小时没有处理,说起来这是个挺不好啥意思的事情,但是由于这个事情反而发现个比较诡异的情况,那就是在主库...
  • 像Netty这种优秀网络框架是必须要学习,说到Netty就离不开javaIO模型,我们知道BIO、NIO、AIO分别是同步阻塞IO、同步非阻塞IO、异步非阻塞IO,那么这里说的同步和异步、阻塞和非阻塞指是什么呢? 同步和异步 ...
  • 阻塞其实本质是: cpu在线程进行调用时阻塞,阻塞着,干不了事情。...但是如果是: 用户态阻塞,像协程等,那么就不会影响cpu调度,基本没有浪费cpu,因此用户态阻塞,是一种 “同步真人思维” ...
  • svn与资源库同步时显示图标含义

    千次阅读 2017-02-07 14:19:49
    SVN图标含义 灰色向右箭头:本地修改过 蓝色向左箭头:SVN上修改过 灰色向右且中间有个加号箭头:本地比SVN上多出文件 蓝色向左且中间有个加号箭头:SVN上比本地多出文件 灰色向右且中间有个减号箭头:...
  • 如何建立远程仓库并同步本地代码以及push -u的含义 在github或者gitee等代码托管平台上新建一个空的远程仓库,这里就不展开了 在本地上初始化 git init 本地文件添加到暂存区,并commit git add . git commit -...
  • 同步的含义:多线程在代码执行的关键点上,互通消息,相互协作,共同把任务正确的完成。 同步代码块语法: synchronized(对象) { 需要同步的代码块; } 同步方法语法: 访问控制符 synchronized 返回值类型...
  • 今天在和导师讨论Java多线程编程的同步问题时,发现对同步代码块、wait()方法、notify()方法和notifyAll()方法理解不太清晰,于是在网上查阅资料,可是结果众说纷纭,于是结合编程验证后得出如下结论。下面本文就...
  • svn本身没有“资源同步”这个选项,但是有一个“check for modification” 这两个是一样的,具体的含义就是:本地的文件和服务器端的文件进行比较,检测哪些文件有冲突、哪些文件本地做了修改、哪些文件服务器端做了...
  • 如何线程的同步

    2017-11-15 15:40:00
    使用线程的一个重要方面是同步访问多个线程访问...1、同步的含义 同步问题的产生,主要是由于在高级语言的源代码中,大多数情况下看起来是一条语句,但在最后编译好的汇编语言机器码中则会被翻译为许多条语句,从而...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,937
精华内容 774
关键字:

同步的含义