并发编程
文章平均质量分 89
分享有关并发编程的知识
向上的狼
目前大四, 自学编程,非计算机专业,在这里分享我的学习路程.
展开
-
关于volatile为什么不能保证原子性详解
关于volatile为什么不能保证原子性详解转载 2022-09-07 20:30:49 · 507 阅读 · 4 评论 -
最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁转载 2022-05-01 23:24:54 · 768 阅读 · 0 评论 -
原子操作类AtomicInteger详解
原子操作类AtomicInteger详解转载 2022-04-29 13:39:13 · 431 阅读 · 0 评论 -
锁与CAS详解
一. 悲观锁与乐观锁乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。乐观锁和悲观锁是两种思想,主要是解决并发场景下的数据争夺的问题。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。 悲观锁:悲观锁在操作数据时比较悲观,认转载 2022-04-29 11:47:25 · 441 阅读 · 0 评论 -
Java中的Condition详解
一、Condition简介任意一个Java对象,都拥有一组监视器方法(定义在Object类中),主要包括wait,notify,notifyAll方法,这些方法与synchornized关键字相配合,可以实现等待/通知模式。Condition接口也提供了类似的Object的监视器方法,与Lock配合可以实现等待/通知模式。但是这两者在使用方式以及功能上还是有差别的。Condition定义了等待/通知两种类型的方法,当前线程调用这些方法时,需要提前获取到Condition对象关联的锁。Co转载 2022-04-29 11:13:59 · 17914 阅读 · 0 评论 -
Java中的Lock详解
简介java.util.concurrent.locks.Lock 是一个类似于synchronized 块的线程同步机制。但是 Lock比 synchronized 块更加灵活。Lock是个接口,有个实现类是ReentrantLock。Lock和syncronized的区别原创 2022-04-28 19:57:45 · 27080 阅读 · 8 评论 -
Java内存模型JMM概述
Java内存模型JMM概述原创 2022-04-28 13:13:52 · 230 阅读 · 0 评论 -
深入理解并发编程的3大特性(原子性、有序性、可见性)
深入理解并发编程的3大特性(原子性、有序性、可见性)转载 2022-04-28 10:43:13 · 676 阅读 · 0 评论 -
Java volatile关键字详解
一、简介volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized (synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。二、并发编程的3个基本概念1.原子性定义:即一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原创 2022-04-24 14:24:57 · 1707 阅读 · 0 评论 -
java阻塞队列BlockingQueue讲解---生产者消费者模型
java阻塞队列BlockingQueue讲解---生产者消费者模型转载 2022-04-22 11:32:58 · 2592 阅读 · 4 评论 -
java实现生产者消费者模式
一: 什么是生产者消费者模型 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。简单来说: 生产者消费者模型就是指,在一个系统中,存在两种角色,一个为生产者,一个为消费者,通过一个缓冲区(仓库)进行通信,生产者将生产的产品放入仓库,消费...原创 2022-04-22 10:01:43 · 7857 阅读 · 1 评论 -
进程线程、同步异步、阻塞非阻塞、并发并行、多线程
进程线程、同步异步、阻塞非阻塞、并发并行, 多线程原创 2022-04-07 11:49:47 · 262 阅读 · 0 评论 -
java创建线程的三种方式及其对比
一: Java中创建线程主要有三种方式:1、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,转载 2021-07-21 16:09:05 · 202 阅读 · 0 评论