博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

并发三大特性

Posted on 2021-04-11 13:54  南国木棉  阅读(600)  评论(0编辑  收藏  举报

 

    首先解释下并发,并行,串行

    

    串行:时间上不冲突,顺序执行。

    并行:同时执行,但互不干扰。

    并发:允许两个任务彼此干扰,统一时间点,只有一个任务在执行。 比如:A线程执行0.5秒,然后暂停,执行B线程0.5秒,然后再回来执行A0.5秒。

 

    并发三大特性

    

    原子性  可见性  有序性

 

    原子性:指在一个操作中cpu不可以在中途暂停,然后再调度,即不中断操作,要不不执行,要不全部执行。

    可见性:当多个访问同一个变量时,一个线程修改了这个变量值,其他线程能够立即看到修改的值。  

    有序性:虚拟机在进行代码测试时,对于那些改变顺序不会对结果造成影响的代码,虚拟机不一定会按照我们写的代码来执行,有可能将他们重新排序。实际上,对于有些代码进行重新排序后,虽然对变量的值没有造成影响,但有可能会出现线程安全问题。