1,并发:一种状态。多个程序在同一时刻只能执行一个,需要在一段时间内才能先后执行完所有程序。
并行:一种状态。多个程序在同一时刻可以同时执行。
竞争:一种状态。在没获得共享资源前,多个程序同时或依次获取资源的行为状态。
2,并发特点:有共享资源;先后执行所有程序(可能会先后获得该共享资源,比如单核cpu)。
并行特点:无共享资源;同时执行所有程序(比如多核cpu)。
竞争特点:都还未得到共享资源;不一定同时执行。
3,并发可能导致竞争,也可能不会(比如两男追一美女,其中一个放弃竞争)。
并发可能导致线程不安全。
4,并发条件:1,有共享资源;2,同一时刻有多个程序获取共享资源。
5,数据竞争:
竞争条件:
6,导致线程不安全的因素:状态。
7,状态:即数据。这种数据存储在状态变量中。
状态特点:内部可变,外部共享。
8,何谓线程安全:单线程下,所见即所得。多线程下,连续正确的执行。多线程的隐患要少于单线程。
9,如何保证线程安全:
无状态;
有一个状态时(使用final常量;不共享;volatile;原子对象);
有多个状态时(避免状态依赖;同步)。
10,原子性:单独的,不可再分割的操作或过程。
11,可见性:A线程在同步块区域所做的事(指对共享对象的状态修改),B线程在获得锁之后,也可看见。
12,重排序:对于至少两个操作,操作的顺序本来是从A到B,但在多线程环境下,可能会变为先执行B,然后再执行A。
13,可重入性:A线程进入锁对象的同步块之后,可以在不退出该块的情况下,继续进入相同的锁对象的不同同步块。
14,锁:是一个对象。可以锁住一个同步块。具有互斥性,原子性,可见性,可重入性,避免重排序。
15,同步:加锁或者使用volatile。
16,volatile:是一种弱同步。本意为易挥发的、易变的。
分享到:
相关推荐
并发理论, 并发关键字, Lock 体系, 原子操作类, 发容器 & 并发工具, 线程池, 并发实践 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上...
在Java并发理论基础方面,我们将会探讨并发编程的定义、多线程、共享变量和多线程间的互斥同步等理论概念。同时,我们也详细阐述了Java编程中的并发原理和机制。在可见性、原子性和有序性等方面,我们将深入讲解每个...
本知识框架是对《Java并发编程实战》一书的总结,主要围绕基本线程和线程池的使用、线程使用中出现的三大问题以及如何解决这些问题出发总结出了这个知识框架,通过该框架能更加深入的去理解Java并发理论知识。
二、并发编程中的主要解决哪两个问题 1、线程之间如何通信 通信是指线程之间以何种机制来交换信息,主要有两种:共享内存和消息传递 2、线程之间如何完成同步(这里的线程指的是并发执行的活动实体) Java内存模型是...
并发理论 存储库包含有关与并发理论有关的问题的解决方案的备份。 编程语言:Java,JavaScript
我的评论:主要存放平时理论学习,选择java jdk源码分析,并发理论;面试,数据库,Linux,中间件,分布式,网络协议等方向
数据依赖 所谓的数据依赖是指,如果多个java指令之间顺序变化会...比如控制依赖(if),满足if条件才会执行里面的操作,里面的操作是使用共享变量做运算,为了提高指令的并发,会先做运算把结果保存在缓存在,等if真的
并发--并发的一些理论知识 资源源于不但搜索,自由源于不但努力
阿里巴巴专家讲座——java内存模型与并发技术。 主要内容: 学习java并发理论基础:Java Memory Model 学习java并发技术基础:理解同步是如何工作 分析程序什么时候需要同步 几个典型的并发设计策略
Python3爬虫系列的理论验证,比较同步依序下载、多进程并发、多线程并发和asyncio异步编程之间的效率差别
包括并发的基础理论知识、不同并发模型的选择与适用环境、编写并发程序的基本步骤,并发算法的正确性证明与性能评价,以及在编写并发程序时遵循的一些指导原则等
Java并发编程最全面试题,包括并发编程基础知识、并发理论、线程池、并发容器、并发队列、并发工具类等方面的常见面试题。例如线程池的概念、优缺点、创建方式、线程池原理等等。 本文档适用于将要参加Java开发相关...
本资源为您提供了关于 Java 并发编程理论基础的精讲,涵盖了多线程编程的核心概念、基本原理以及在 Java 中的应用。通过深入学习,您将建立坚实的并发编程基础,能够更好地理解和应对多线程编程中的挑战。 并发编程...
进程代数与时序逻辑是并发理论中应用最为广泛的两大规范系统。近来,Gerald Luttgen等人将二者进行结合,提出了逻辑标记转换系统以及相应的精化关系——LLTS预备模拟。提出了一种LLTS预备模拟关系的等价描述方式——...
a面试大全2021是一套最新Java面试必问合集,这本面试手册包含了Java基础、Java集合、JVM、Spring、Spring Boot、...2、并发理论 3、并发关键字 4、Lock体系 5、并发容器 6、线程池 7、原子操作类 8、并发工具 未完待续
Java 多线程与并发(1_26)-Java 并发 - 理论基础
并发编程模型与理论.pptx
《JAVA并发编程实践》既能够成为读者的理论支持,又可以作为构建可靠的、可伸缩的、可维护的并发程序的技术支持。《JAVA并发编程实践》并不仅仅提供并发API的清单及其机制,还提供了设计原则、模式和思想模型,使...
接下来将介绍DBMS的事务与并发相关问题如下所的层次图并不代表着DBMS实现的所有组件,除此之外DBMS还有两组件横跨了多个层级:并发控制,数据库恢复并发控制是
本书既能够成为读者的理论支持,又可以作为构建可靠的,可伸缩的,可维护的并发程序的技术支持。本书并不仅仅提供并发API的清单及其机制,本书还提供了设计原则,模式和思想模型,使我们能够更好地构建正确的,性能...