美文网首页
Java多线程-并发编程问题

Java多线程-并发编程问题

作者: xgangzai | 来源:发表于2019-11-19 22:36 被阅读0次

在并发编程中,需要注意的问题很多,主要有以下三个方面的问题,分别是安全性问题、活跃性问题和性能问题。

安全性问题

经常说的线程安全,何为线程安全,其本质上就是正确性,而正确性的含义就是程序按照我们的期望执行。

存在共享数据并且该数据会发生变化,通俗地讲就是有多个线程会同时读写同一数据会导致安全性问题,

多个线程并发读写统一数据,叫做数据竞争(Data Race),

竞态条件(Race Condition),指的是程序的执行结果依赖线程执行的顺序

还是不懂。。。。。。

那面对数据竞争和竞态条件问题,又该如何保证线程的安全性呢?其实这两类问题,都可以用互 斥这个技术方案,而实现互斥的方案有很多,CPU 提供了相关的互斥指令,操作系统、编程语言 也会提供相关的 API。从逻辑上来看,我们可以统一归为:

活跃性问题

所谓活跃性问题,是指某个操作无法执行下去。死锁就是一个典型的活跃性问题。除了死锁,还有“活锁”和“饥饿”

性能问题

使用锁会将操作串行化,另外获取锁和释放锁两个操作也需要计算资源和等待,会降低程序性能。

解决方案

  1. 使用无所的算法和数据结构,比如Thread Local, Copy on Write,乐观锁,自旋+CAS等
  2. 减少锁持有的时间,比如使用更细粒度的锁

相关文章

  • 后端架构师技术图谱(三)-并发、锁、设计模式(二)

    并发 多线程 《40个Java多线程问题总结》 线程安全 《Java并发编程——线程安全及解决机制简介》 一致性、...

  • 史上最全Java多线程面试题及答案

    多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域。所以,学好多线程并发编程对Java程序员来来说...

  • 读书笔记——粗读《Java并发编程的艺术》

    主要内容摘抄自《Java并发编程的艺术》 Java并发机制的底层实现原理 在多线程并发编程中synchronize...

  • 线程

    Java 并发编程:线程池的使用 Java 并发编程:线程池的使用java 多线程核心技术梳理 (附源码) 本文对...

  • Java并发机制底层原理

    本文为对Java并发编程中并发机制底层原理的总结,包括以下几部分: 为什么多线程下会有并发问题 Synchroni...

  • 汪大神Java多线程编程实战

    下载地址:汪大神Java多线程编程实战 课程目录: ├─1 │├─Java并发编程.png │├─源码+ppt.r...

  • JAVA内存模型---JMM

    JAVA多线程编程是JAVA有别于C/C++的一大特性。最近在学习JAVA并发编程的艺术,遇到了很多问题,但是既然...

  • Java多线程干货系列—(一)Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要...

  • JAVA线程知识点

    多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面...

  • java多线程

    引言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要...

网友评论

      本文标题:Java多线程-并发编程问题

      本文链接:https://www.haomeiwen.com/subject/wefnictx.html