zoukankan      html  css  js  c++  java
  • java架构师学习路线-并发编程的概念

    图灵学院 java架构师学习路线

    前段时间有个并发编程的问题曾一度困扰着我,后来就通过上网找资料发现并发编程原来是这样,Java并发编程常说的,在实际开发中需要经常注意的两个概念:可见性、有序性,下面我将为大家一一道来并发编程的两个概念。

    1、可见性 
          可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。

    并发编程.png 

    当多个线程操作一个普通的共享变量时,其中某个线程操作的原理是这样的,首先从主内存中读取这个变量到自己的工作内存,在工作内存中修改以后保留变量的副本,在写入到主内存。但是普通变量不存在可见性,当修改新值以后,什么时候写入主内存是不一定的,当其他线程读取的时候,读取的可能还是旧值。 

    2、有序性 

    有序性,即程序的执行顺序按照代码的先后顺序来执行;在java内存模型中,编译器和处理器允许对指令进行重排序,在单线程下不会出问题,但是多线程下会有问题,实现有序性的方法有synchronized或者Lock 、volatile(禁止指令重排序)。

    并发编程的概念讲解到此就告一段落了,但是学习之路却不应该被终止,一个人对事情的兴趣浓烈度,决定了他会在这件事情会多少功夫,如果遇到那些半途而废的人,不是说明他们对那件事情根本没有一点的兴趣,而是他没有足够的兴趣去做那件事情。

    尽管Java架构师学习路线已经分享给大家,但有多少人能认真的去践行,这个就难说了。互联网寒冬已经到来,作为程序员,更应在此时提高自己,有着更高远的追求。

    篇幅有限,如果需要更详细的java架构师学习路线资料可加博主qq:1993712276,或者去图灵官网查看

  • 相关阅读:
    C语言 · 最大最小值
    C语言 · 三个整数的排序
    C语言 · 简单加法
    C语言 · FJ的字符串
    C语言 · 分解质因数
    C语言 · 数的统计
    C语言 · 成绩的等级输出
    C语言 · 区间K大数查询
    shell学习目录
    数据库学习目录
  • 原文地址:https://www.cnblogs.com/tulingxueyuan/p/13360706.html
Copyright © 2011-2022 走看看