首页 > 编程语言 >Java并发编程

Java并发编程

时间:2023-01-17 16:58:11浏览次数:37  
标签:通过 Java 关键字 编程 并发 保证 有序性 执行

1.并发与并行?

并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。    2.并发(指在同一时刻只能有一条指令执行)三大特性 并发是解决多线程的同步,互斥,分工的问题?

1).可见性

  当一个线程修改了共享变量的值,其他线程能够看到修改的值  

  如何保证可见性.

    通过 volatile 关键字保证可见性。

    通过 内存屏障保证可见性。

    通过 synchronized 关键字保证可见性。

    通过 Lock保证可见性。

    通过 final 关键字保证可见性

2).有序性

  即程序执行的顺序按照代码的先后顺序执行。

  如何保证有序性

    通过 volatile 关键字保证有序性。

    通过 内存屏障保证有序性。

    通过 synchronized关键字保证有序性。

    通过 Lock保证有序性。

3).原子性

  一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。  

  如何保证原子性

    通过 synchronized 关键字保证原子性。

    通过 Lock保证原子性。

    通过 CAS保证原子性

标签:通过,Java,关键字,编程,并发,保证,有序性,执行
From: https://www.cnblogs.com/blogs6/p/17058159.html

相关文章

  • java学习笔记
    键盘输入接收用户输入的数据,使用键盘输入语句来获取。Input.java,需要一个扫描器(对象)Scannerimportjava.util.Scanner;publicclassInput{publicstaticvoidm......
  • JavaWeb开发中在服务器常用命令集锦
    基本的lsmvmidir就不说了。一.后端部署1.1启动jar包#默认会将所有日志存放到一个当前目录中新建的nohup.out文件中nohupjava-jar-Duser.timezone=GMT+8ap......
  • Java反序列化-CommonsCollections1利用链分析
    前言学习Java基础语法也有1年多的时间了,Java安全基础也学了有半年了,期间通过ctf赛题学习过fastjson的反序列化并了解了其利用链,但并未深入学习并记录笔记。一直都说要赶......
  • Java基础-方法
    Java中分类一共四种类型无参无返回、无参带返回、有参无返回和有参带返回 1.无参无返回值得 publicstaticvoid(){...}2.无参带返回值publicstatic 数据类型()......
  • UI自动化Selenium的使用--Java语言
    1.Selenium的运行环境依赖于Java环境,Java环境分JDK和JRE,JDK就是JavaDevelopmentKit。简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。JRE是Java......
  • selenium_webdriver_ java 进行元素定位时的页面跳转问题
    在UI自动化测试操作过程中有时候点击某个链接会弹出新的窗口,这时我们如果需要操作新打开页面中的元素,就需要将页面切换到新打开的页面上再进行操作。java实现如下://窗口切......
  • JAVA的Stream流操作
    在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。例如,现在有这么一个需求:从给定句子......
  • 关于javaScript中的__proto__和prototype
    区别:__proto__是浏览器对实例化对象中[[prototype]]属性的命名方式,__proto__是属于对象的属性,prototype是属于函数对象的属性。__proto__指向[函数名].prototype,[函数名]......
  • ElasticSearch进阶:一文全览各种ES查询在Java中的实现
    1词条查询1.1等值查询-term1.2多值查询-terms1.3范围查询-range1.4前缀查询-prefix1.5通配符查询-wildcard2复合查询2.1布尔查询2.2Filter查询3聚......
  • Linux部署Java项目【reggie_take_out】
    方式1:手工命令https://www.bilibili.com/video/BV13a411q753/?p=139方式2:shell脚本自动https://www.bilibili.com/video/BV13a411q753/?p=140https://www.bilibili.com......