• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想人生从关注生活开始
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  架构设计类与算法

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
什么是线程安全以及如何实现它-Java快速进阶教程

摘要:1. 概述 Java 支持开箱即用的多线程。这意味着通过在单独的工作线程中并发运行字节码,JVM能够提高应用程序性能。 虽然多线程是一个强大的功能,但它是有代价的。在多线程环境中,我们需要以线程安全的方式编写实现。这意味着不同的线程可以访问相同的资源,而不会暴露错误行为或产生不可预知的结果。这种编程 阅读全文
posted @ 2023-02-22 11:39 JackYang 阅读(234) 评论(1) 推荐(0)
Java 19 中的结构化并发-Java快速进阶教程

摘要:1. 概述 在本教程中,我们将讨论孵化器功能结构化并发 (JEP 428),它为 Java 19 提供了结构化并发功能。我们将指导你使用新的 API 来管理多线程代码。 2. 理念 通过采用并发编程风格来降低线程泄漏和取消延迟的可能性,从而增强多线程代码的可维护性、可靠性和可观察性,这是与取消和关闭 阅读全文
posted @ 2023-02-22 11:21 JackYang 阅读(423) 评论(0) 推荐(0)
延迟队列使用指南-Java快速进阶教程

摘要:1. 概述 在本文中,我们将研究java.util.concurrent包中的DelayQueue构造。这是一个阻塞队列,可用于生产者-消费者程序。 它有一个非常有用的特性——当消费者想要从队列中获取一个元素时,他们只能在该特定元素的延迟到期时获取它。 2. 为延迟队列中的元素实现延迟 我们要放入D 阅读全文
posted @ 2023-02-22 11:17 JackYang 阅读(169) 评论(0) 推荐(0)
RabbitMQ简介-Java快速进阶教程

摘要:1. 概述 软件组件的解耦是软件设计中最重要的部分之一。实现此目的的一种方法是使用消息传递系统,它提供组件(服务)之间的异步通信方式。在本文中,我们将介绍其中一个系统:RabbitMQ。 RabbitMQ 是一个实现高级消息队列协议 (AMQP) 的消息代理。它为主要编程语言提供客户端库。 除了用于 阅读全文
posted @ 2023-02-22 11:09 JackYang 阅读(106) 评论(0) 推荐(0)
使用 Spring AMQP 进行消息传递-Java快速进阶教程

摘要:1. 概述 在本教程中,我们将探索使用 Spring AMQP 框架通过 AMQP 进行基于消息的通信。首先,我们将介绍消息传递的一些关键概念。然后,我们将继续一个实际示例。 2. 基于消息的通信 消息传递是一种在应用程序之间进行通信的技术。它依赖于异步消息传递,而不是基于同步请求响应的体系结构。消 阅读全文
posted @ 2023-02-22 11:03 JackYang 阅读(306) 评论(0) 推荐(0)
使用 Spring AMQP 进行错误处理-Java快速入门教程

摘要:1. 简介 异步消息传递是一种松散耦合的分布式通信,在实现事件驱动体系结构方面越来越流行。幸运的是,Spring框架提供了 SpringAMQP 项目,允许我们构建基于AMQP的消息传递解决方案。 另一方面,在此类环境中处理错误可能是一项艰巨的任务。因此,在本教程中,我们将介绍处理错误的不同策略。 阅读全文
posted @ 2023-02-22 10:53 JackYang 阅读(302) 评论(0) 推荐(0)
死锁、活锁和饥饿-架构快速进阶教程

摘要:1. 简介 在多进程并发环境中,多个进程可能会争用一组有限的资源。如果进程请求资源,而该资源当前不可用,则进程将等待该资源。有时,此等待过程永远不会成功访问资源。这种对资源的等待会导致三种情况——死锁、活锁和饥饿。 在本教程中,我们将讨论这三个条件。 2. 死锁 在本节中,我们将首先讨论死锁、其必要 阅读全文
posted @ 2023-02-22 10:37 JackYang 阅读(465) 评论(0) 推荐(0)
Java 线程死锁和活锁-Java快速进阶教程

摘要:1. 概述 虽然多线程有助于提高应用程序的性能,但它也带来了一些问题。在本教程中,我们将在 Java 示例的帮助下研究两个这样的问题,死锁和活锁。 2. 死锁 2.1. 什么是死锁? 当两个或多个线程永远等待另一个线程持有的锁或资源时,就会发生死锁。因此,应用程序可能会停止或失败,因为死锁线程无法进 阅读全文
posted @ 2023-02-22 10:29 JackYang 阅读(464) 评论(0) 推荐(0)
ReLU 和 dropout 层在 CNN 中的工作原理-AI快速进阶系列

摘要:1. 概述 在本教程中,我们将使用示例网络架构研究卷积神经网络的两个基本组件——ReLU(Rectified Linear Unit) 与 Dropout 层。 到最后,我们将了解它们插入CNN背后的基本原理。此外,我们还将知道在我们自己的卷积神经网络中实现它们需要哪些步骤。 2. CNN中的维度诅 阅读全文
posted @ 2023-02-20 15:36 JackYang 阅读(2656) 评论(0) 推荐(0)
卷积神经网络简介-AI快速进阶系列

摘要:1. 概述 在本教程中,我们将研究卷积神经网络背后的理论及其架构。 我们将首先讨论通常使用卷积神经网络 (CNN) 执行的任务和特征提取问题。然后,我们将讨论为什么需要CNN,以及为什么传统的前馈神经网络是不够的。 然后,我们将在矩阵运算的上下文中讨论卷积的操作。这将使我们很好地理解卷积神经网络的运 阅读全文
posted @ 2023-02-15 17:08 JackYang 阅读(212) 评论(1) 推荐(1)
进程与线程-linux快速入门教程

摘要:1. 简介 在本教程中,我们将简要定义两个模棱两可的术语,进程和线程。之后,我们将看看它们之间的差异。 2. 定义 进程是程序的执行。它包括程序本身、数据、资源(如文件)和执行信息(如操作系统保存的进程关系信息)。操作系统允许用户通过系统调用创建、计划和终止进程。 线程是一个半进程。它有自己的堆栈并 阅读全文
posted @ 2023-02-15 15:53 JackYang 阅读(53) 评论(0) 推荐(0)
多线程与超线程-架构快速进阶教程

摘要:1. 简介 在本教程中,我们将介绍计算机科学的两种处理技术。特别是,我们将介绍多线程和超线程技术,讨论它们的不同方法,突出它们的优点和缺点,并讨论它们最常见的用法。 2. 多线程 在计算机系统中,处理器执行称为线程的轻量级指令集。为了提高整体系统性能、响应能力和吞吐量,可以在不同的内核上同时执行多个 阅读全文
posted @ 2023-02-15 15:34 JackYang 阅读(830) 评论(0) 推荐(0)
区块链如何工作-架构快速进阶教程

摘要:1. 简介 区块链基本上是一个记录数据的系统,有可能彻底改变我们对数据管理和金融交易的思考方式。 在本教程中,我们将介绍区块链技术,分析其工作原理,并讨论其优势、劣势和潜在用途。 2. 什么是区块链? 通常,区块链是一种链形式的数据结构,由动态数据记录序列组成,称为使用加密技术连接和加密的块。前一个 阅读全文
posted @ 2023-02-15 15:27 JackYang 阅读(318) 评论(0) 推荐(0)
依赖注入与服务定位器-架构快速进阶教程

摘要:1. 概述 在本教程中,我们将回顾两种模式:依赖项注入和服务定位器。他们以不同的方式解决相同的问题,并且经常使用可以应用于两者的术语。目标是找出它们的本质区别以及每种方法的优缺点。 2. 示例 假设我们有一组带有依赖项的类。让我们概述一下初始布局: 该图仅显示类之间的依赖关系。但是,它没有解释这些类 阅读全文
posted @ 2023-02-15 15:18 JackYang 阅读(279) 评论(0) 推荐(0)
什么是反模式-架构快速进阶教程

摘要:1. 简介 在本教程中,我们将了解什么是反模式。反模式是无效问题的常见解决方案,导致的问题多于解决的问题。本文将解释反模式,常见反模式的几个类别和示例,以及识别和避免它们的一些技巧。 2. 定义 Andrew Koenig在1995年的论文“Patterns and Antipatterns”中对反 阅读全文
posted @ 2023-02-15 15:08 JackYang 阅读(1019) 评论(0) 推荐(1)
反模式之幻数-架构快速进阶教程

摘要:1. 简介 设计模式可用作软件开发的地图。这些模式建议如何有效地应对反复出现的编程挑战。通过这种方式,模式足够通用,可以适应几个不同的编程项目,从而在异构上下文中解决相同的问题。 然而,反模式是软件开发中常见的实践,在实践中并不真正有效。因此,反模式非但没有改进最终软件,反而使软件开发和维护变得更加 阅读全文
posted @ 2023-02-15 15:06 JackYang 阅读(96) 评论(0) 推荐(0)
什么是功能分解-架构快速进阶教程

摘要:1. 概述 在本教程中,我们将通过一个实际示例详细讨论功能分解。 此外,我们将探讨这种方法的优缺点。 2. 简介 功能分解是一种系统设计和分析方法,涉及将复杂系统分解为更小、更易于管理的组件。此外,我们使用特定的功能和关系来分解复杂的系统。 这是一个将系统分解为组成部分、识别功能并定义它们如何相互作 阅读全文
posted @ 2023-02-15 14:53 JackYang 阅读(2836) 评论(0) 推荐(0)
高可用性与容错-架构快速进阶教程

摘要:1. 简介 在本教程中,我们将研究高可用性和容错之间的异同。随着计算机网络的扩展和云计算的出现,网络服务在全球范围内流行起来。目前,网络化服务已融入日常生活,随时随地都需要。 由于这种普及,提供商必须保持通过网络提供的服务持续可供客户使用。为此,这些提供商创建了最低服务可用性协议,并采用允许和恢复故 阅读全文
posted @ 2023-02-15 13:40 JackYang 阅读(224) 评论(0) 推荐(0)
什么是软件多样性-架构快速进阶教程

摘要:1. 概述 在本教程中,我们将研究软件多样性。首先,我们将了解导致软件多样性的动机。最后,我们将研究什么是软件多样性以及如何工作。 2. 了解动机 通常,如果开发人员需要实现解决特定问题的软件,他们会召集团队,分析需求,选择编程工具,并创建一个解决问题的软件程序。 前面描述的方案是在市场上发布新软件 阅读全文
posted @ 2023-02-15 13:29 JackYang 阅读(273) 评论(0) 推荐(0)
需求:功能性与非功能性-架构快速进阶教程

摘要:1. 简介 我们可以将计算机科学视为通过计算解决现实世界问题的艺术。因此,计算机科学家或广义上的软件开发人员的相关能力之一是将现实世界抽象为能够解决特定问题的计算模型。 反过来,抽象模型是基于与开发中软件的利益相关者一起定义的一系列需求构建的。这些需求定义了输入和输出之间的所需关系,确定了最终产品质 阅读全文
posted @ 2023-02-15 13:24 JackYang 阅读(1181) 评论(0) 推荐(1)

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3