• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想人生从关注生活开始
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 121 下一页
2023年2月23日
旅行推销员问题Java演练-Java快速入门教程
摘要: 1. 简介 在本教程中,我们将了解模拟退火算法,并展示基于旅行推销员问题 (TSP) 的示例实现。 2. 模拟退火 模拟退火算法是一种启发式算法,用于解决具有较大搜索空间的问题。 灵感和名字来自冶金退火;它是一种涉及材料加热和受控冷却的技术。 通常,模拟退火在探索解空间并降低系统温度时会降低接受更差 阅读全文
posted @ 2023-02-23 12:27 JackYang 阅读(73) 评论(0) 推荐(0)
2023年2月22日
volatile和线程安全-Java快速进阶教程
摘要: 1. 概述 虽然 Java 中的volatile关键字通常可以确保线程安全,但情况并非总是如此。 在本教程中,我们将了解共享volatile变量可能导致争用条件的情况。 2. 什么是volatile变量? 与其他变量不同,volatile变量是写入主存储器和从主存储器读取的。CPU 不缓存volat 阅读全文
posted @ 2023-02-22 14:25 JackYang 阅读(186) 评论(0) 推荐(0)
Volatile关键字使用指南-Java快速进阶教程
摘要: 1. 概述 在没有必要同步的情况下,编译器、运行时或处理器可能会应用各种优化。尽管这些优化通常是有益的,但有时它们可能会导致微妙的问题。 缓存和重新排序是在并发上下文中可能会让我们感到惊讶的优化之一。Java 和 JVM 提供了许多控制内存顺序的方法,volatile关键字就是其中之一。 在本教程中 阅读全文
posted @ 2023-02-22 14:17 JackYang 阅读(93) 评论(0) 推荐(0)
Java 中的易失性变量与原子变量-Java快速进阶教程
摘要: 1. 概述 在本教程中,我们将了解volatile关键字和原子类之间的区别以及它们解决的问题。首先,有必要知道Java如何处理线程之间的通信以及可能出现的意外问题。 线程安全是一个关键主题,它提供了对多线程应用程序内部工作的深入了解。我们还将讨论争用条件,但我们不会太深入地讨论这个主题。 2. 并发 阅读全文
posted @ 2023-02-22 13:25 JackYang 阅读(64) 评论(1) 推荐(0)
同步 Java 集合简介-Java快速入门教程
摘要: 1. 概述 集合框架是Java的关键组件。它提供了大量的接口和实现,使我们能够以简单的方式创建和操作不同类型的集合。 尽管使用普通的不同步集合总体上很简单,但在多线程环境(也称为并发编程)中工作时,它也可能成为一个令人生畏且容易出错的过程。 因此,Java 平台通过在Collections类中实现的 阅读全文
posted @ 2023-02-22 13:14 JackYang 阅读(84) 评论(0) 推荐(0)
Java 中的不可变对象-Java快速进阶教程
摘要: 1. 概述 在本教程中,我们将学习是什么使对象不可变,如何在 Java 中实现不可变性,以及这样做有什么好处。 2. 什么是不可变对象? 不可变对象是其内部状态在完全创建后保持不变的对象。 这意味着不可变对象的公共 API 保证了它在其整个生命周期中的行为方式相同。 如果我们看一下类 String, 阅读全文
posted @ 2023-02-22 12:56 JackYang 阅读(277) 评论(0) 推荐(0)
Java 中的常见并发陷阱-Java快速进阶教程
摘要: 1. 简介 在本教程中,我们将看到 Java 中一些最常见的并发问题。我们还将学习如何避免它们及其主要原因。 2. 使用线程安全对象 2.1. 共享对象 线程主要通过共享对相同对象的访问来进行通信。因此,在对象更改时从对象读取可能会产生意外的结果。此外,同时更改对象可能会使其处于损坏或不一致的状态。 阅读全文
posted @ 2023-02-22 12:50 JackYang 阅读(107) 评论(1) 推荐(0)
使用 Java 示例介绍无锁数据结构-Java快速进阶教程
摘要: 1. 简介 在本教程中,我们将了解什么是非阻塞数据结构,以及为什么它们是基于锁的并发数据结构的重要替代方案。 首先,我们将介绍一些术语,例如无障碍、无锁定和无等待。 其次,我们将研究非阻塞算法的基本构建块,如CAS(compare-and-swap)。 第三,我们将研究在Java中实现无锁队列,最后 阅读全文
posted @ 2023-02-22 12:38 JackYang 阅读(622) 评论(0) 推荐(0)
AtomicStampedReference 指南-Java快速进阶教程
摘要: 1. 概述 在之前的一篇文章中,我们了解到AtomicStampedReference可以防止ABA问题。 在本教程中,我们将仔细研究如何最好地使用它。 2. 为什么我们需要AtomicStampedReference? 首先,AtomicStampedReference为我们提供了一个对象引用变量 阅读全文
posted @ 2023-02-22 12:30 JackYang 阅读(842) 评论(0) 推荐(2)
并发中的 ABA 问题-Java快速进阶教程
摘要: 1. 简介 在本教程中,我们将介绍并发编程中 ABA 问题的理论背景。我们将看到它的根本原因以及解决方案。 2. 比较和交换 为了了解根本原因,让我们简要回顾一下比较和交换的概念。 比较和交换 (CAS) 是无锁算法中的常用技术,用于确保一个线程对共享内存的更新在另一个线程同时修改相同空间时失败。 阅读全文
posted @ 2023-02-22 12:17 JackYang 阅读(354) 评论(1) 推荐(0)
上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 121 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3