• Java并发编程(5) —— synchronized关键字

    时间:2023-04-08 12:54:03

    上一篇:Java并发编程(4) —— Java 内存模型(JMM)详解 在上一篇中我们提到了volatile关键字可通过插入内存屏障的方式来保证变量的可见性(每次使用都到主存中进行读取)和有序性(不允许指令重排序),但是volatile关键字不保证对变量复合操作的原子性,例如i++操作在jvm...

  • 【JAVA并发编程实战】5、构建高效且可伸缩的结果缓存

    时间:2023-02-26 18:26:42

    首先创建一个借口,用来表示耗费资源的计算package cn.xf.cp.ch05;public interface Computable<A, V>{ V compute(A arg) throws Exception;}实现接口,实现计算过程package cn.xf.cp.c...

  • Java应用【二】Java 并发编程与任务调度详解

    时间:2023-02-23 12:03:44

    第一部分:并发编程基础在讨论并发编程之前,首先需要理解一些基本概念和原理。什么是线程线程是计算机操作系统中的基本执行单位之一。它是进程中的一部分,是操作系统调度的基本单位。一个进程可以包含多个线程,每个线程执行自己的代码,但是它们共享进程的内存和其他资源。线程通常比进程更轻量级,可以更快地创建和销毁...

  • 编写高效的Java代码:常用的优化技巧【四】之并发编程技巧

    时间:2023-02-22 11:19:03

    ​​编写高效的Java代码:常用的优化技巧【一】​​​​编写高效的Java代码:常用的优化技巧【二】​​​​编写高效的Java代码:常用的优化技巧【三】之JVM调优​​一、使用并发集合和原子变量来减少竞争在多线程并发执行的场景中,如果多个线程同时访问同一个共享资源,就会出现竞争条件,这会导致数据不一...

  • Java并发编程学习14-任务关闭(上)

    时间:2023-02-21 17:13:06

    任务关闭(上)-- 关闭基于线程的服务《任务关闭》由于篇幅较多,拆分了两篇来介绍各种任务和服务的关闭机制,以及如何编写任务和服务,使它们能够优雅地处理关闭。我们知道,应用程序通常会创建拥有多个线程的服务,例如线程池,并且这些服务的生命周期通常比创建它们的方法的生命周期更长。如果应用程序准备退出,那么...

  • 黑马程序员——Java多线程与并发编程

    时间:2023-02-20 13:01:32

    --------------- Android培训、Java培训、期待与你交流! ----------------          多任务系统中,每个独立执行的程序称为进程,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程就是进程中的一个执行路径,单线程中,程序按...

  • java并发编程学习总结(基础篇)

    时间:2023-02-16 20:26:07

    一、基础概念总结 1.多线程程序可能存在的风险:(1)安全性问题:多线程程序在没有充足同步的情况下,在特定的线程执行时序下,多个线程同时操作一块共享资源时,可能引发错误。(2)活跃性问题:当多个线程存在竞争共享资源时,可能会引发死锁,饥饿(线程长时间得不到执行)及活锁(定义:不断的重复相同的操作,而...

  • java并发编程学习总结(基础篇)

    时间:2023-02-16 19:39:31

    一、基础概念总结 1.多线程程序可能存在的风险: (1)安全性问题:多线程程序在没有充足同步的情况下,在特定的线程执行时序下,多个线程同时操作一块共享资源时,可能引发错误。 (2)活跃性问题:当多个线程存在竞争共享资源时,可能会引发死锁,饥饿(线程长时间得不到执行)及活锁(定义:不断的重复相同的操...

  • Java多线程并发编程/锁的理解

    时间:2023-02-15 12:22:06

    一.前言最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题。在运用了 限流/加锁等方案后,问题得到解决。限流方案见本人另一篇博客:Guava-RateLimiter实现令牌桶限流加锁方案...

  • Java高并发编程基础三大利器之CountDownLatch

    时间:2023-02-15 10:39:37

    引言上一篇文章我们介绍了AQS的信号量Semaphore《Java高并发编程基础三大利器之Semaphore》,接下来应该轮到CountDownLatch了。什么是CountDownLatchCountDownLatch是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计...

  • Java并发编程基础

    时间:2023-02-15 10:20:27

    Java并发编程基础1. 并发1.1. 什么是并发?并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力。如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可交互性将大大改善。现代的PC都有多个CPU或一个CPU中有多个核。是否能合理运用多核的能力将成为一个大规模应用...

  • Java并发编程阅读笔记-同步容器、工具类整理

    时间:2023-02-14 21:42:32

    Java并发编程阅读笔记-同步容器、工具类整理的更多相关文章【Java并发编程二】同步容器和并发容器一.同步容器 在Java中,同步容器包括两个部分,一个是vector和HashTable,查看vector.HashTable的实现代码,可以看到这些容器实现线程安全的方式就是将它们的状态封装起来,并...

  • Java并发编程实战 03互斥锁 解决原子性问题

    时间:2023-02-14 21:37:43

    文章系列Java并发编程实战 01并发编程的Bug源头Java并发编程实战 02Java如何解决可见性和有序性问题摘要在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,那么还有一个原子性问题咱们还没解决。在第一篇文章01并发编程的Bug源头当中,讲到了把一个或者...

  • 【Java并发编程】2、无锁编程:lock-free原理;CAS;ABA问题

    时间:2023-02-14 21:37:37

    转自:http://blog.csdn.net/kangroger/article/details/47867269定义无锁编程是指在不使用锁的情况下,在多线程环境下实现多变量的同步。即在没有线程阻塞的情况下实现同步。这样可以避免竞态、死锁等问题。原理CAS是指Compare-and-swap或Co...

  • 老码农的祖传干货:如何解决Java的并发编程?

    时间:2023-02-14 16:09:42

    作者:京东零售 刘跃明 Monitor概念 Java对象的内存布局 对象除了我们自定义的一些属性外,还有其它数据,在内存中可以分为三个区域:对象头、实例数据、对齐填充,这三个区域组成起来才是一个完整的对象。 对象头:在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些...

  • 《java并发编程实战》读书笔记2--对象的共享,可见性,安全发布,线程封闭,不变性

    时间:2023-02-04 09:26:27

    这章的主要内容是:如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。内存的可见性确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。上面的程序中NoVisibility可能会持续循环下去,因为读线程可能永远都看不到ready的值。一种更奇怪的现象是NoVisibility可能会...

  • Java并发(一)并发编程的挑战

    时间:2023-02-04 09:26:21

    目录一、上下文切换1. 多线程一定快吗2. 测试上下文切换次数和时长3. 如何减少上下文切换4. 减少上下文切换实战二、死锁三、资源限制的挑战四、本章小结并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运...

  • 深入理解Java多线程(1) - Java并发编程的艺术

    时间:2023-02-02 13:02:39

    今天深度学习一下《Java并发编程的艺术》的第1章并发编程的挑战,深入理解Java多线程,看看多线程中的坑。注意,哈肯的程序员读书笔记并不是抄书,而是将书中精华内容和哈肯的开发经验相结合,给你系统地讲述我对相关知识理解。如果你发现哈肯讲的内容跟书中内容差异很大也不足为奇。1 多线程的使用场景在实际的...

  • Java 高并发编程之最实用的任务执行架构设计建议收藏

    时间:2023-01-31 23:16:26

    高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求,高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率Q

  • java并发编程(三)线程挂起,恢复和终止的正确方法

    时间:2023-01-31 09:34:54

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733   下面我们给出不用上述两个方法来实现线程挂起和恢复的策略——设置标志位。通过该方法实现线程的挂起和恢复有一个很好的地方,就是可以在线程的指定位置实现线程的挂起和恢复,而不用担...