- 1. 前言在Java开发中,多线程编程是一个常见而重要的话题。随着计算机硬件的发展,多核处理器的普及以及对性能的不断追求,充分利用多线程来实现并发执行成为了提高程序效率和性能的必要手段。然而,多线程编程中存在诸多问题,如线程安全和协调等,而Java提供了一些并发工具来解决这些问题。本文将深入探讨三大并发利器:Synchronized、ReentrantLock和CAS。 2. Synchr... 1. 前言在Java开发中,多线程编程是一个常见而重要的话题。随着计算机硬件的发展,多核处理器的普及以及对性能的不断追求,充分利用多线程来实现并发执行成为了提高程序效率和性能的必要手段。然而,多线程编程中存在诸多问题,如线程安全和协调等,而Java提供了一些并发工具来解决这些问题。本文将深入探讨三大并发利器:Synchronized、ReentrantLock和CAS。 2. Synchr...
- python 进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可以实现并发编程,但是它们之间有几点不同:线程间共享进程的内存空间,但进程间的内存空间是相互独立的;线程创建和销毁的开销较... python 进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可以实现并发编程,但是它们之间有几点不同:线程间共享进程的内存空间,但进程间的内存空间是相互独立的;线程创建和销毁的开销较...
- 前言 美团9.9内推笔试、9.11校招笔试,反正就是各种虐,笔试内容如下: 知识点:图的遍历(DFS、BFS)、进程间通信、二叉查找树节点的删除及中序遍历、HTTP会话的4个过程、红黑树、1024!有多少个0,60块糖分给5个人,如何分等。编程题考察拿红包、多叉树(见下图)。 另外,更变态的是其IDE编程居然在多行输入问题上死翘翘了,基本上就是纠结于到底如何实现多行输入... 前言 美团9.9内推笔试、9.11校招笔试,反正就是各种虐,笔试内容如下: 知识点:图的遍历(DFS、BFS)、进程间通信、二叉查找树节点的删除及中序遍历、HTTP会话的4个过程、红黑树、1024!有多少个0,60块糖分给5个人,如何分等。编程题考察拿红包、多叉树(见下图)。 另外,更变态的是其IDE编程居然在多行输入问题上死翘翘了,基本上就是纠结于到底如何实现多行输入...
- 0. 前言 面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?1. volatile与synchronized介绍 volatile是变量修饰符,其修饰的变量具有可见性(可见性也就是说一旦某个... 0. 前言 面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?1. volatile与synchronized介绍 volatile是变量修饰符,其修饰的变量具有可见性(可见性也就是说一旦某个...
- 【Hadoop】【JHS】2-JHS服务之JobHistory源码解析 【Hadoop】【JHS】2-JHS服务之JobHistory源码解析
- 线程是计算机中一种轻量级的进程,它是程序执行的基本单位,可以看做是进程中的一个小部分。 线程与进程不同,进程是操作系统进行资源分配和调度的基本单位,每个进程都有自己的独立内存空间和系统资源,进程之间相互独立。而线程是进程中的实际执行单位,一个进程中可以包含多个线程,这些线程共享同一份内存空间和资源。 线程是计算机中一种轻量级的进程,它是程序执行的基本单位,可以看做是进程中的一个小部分。 线程与进程不同,进程是操作系统进行资源分配和调度的基本单位,每个进程都有自己的独立内存空间和系统资源,进程之间相互独立。而线程是进程中的实际执行单位,一个进程中可以包含多个线程,这些线程共享同一份内存空间和资源。
- ReentrantLock是Java中提供的一种可重入的互斥锁,它具有与synchronized关键字相似的功能,但更加灵活和可控。下面是ReentrantLock底层实现原理的简要解释: ReentrantLock的底层实现主要依赖于AbstractQueuedSynchronizer(AQS)类。AQS是一个用于构建锁和其他同步器的框架,它提供了一种基于FIFO等待队列的同步机制。 Re... ReentrantLock是Java中提供的一种可重入的互斥锁,它具有与synchronized关键字相似的功能,但更加灵活和可控。下面是ReentrantLock底层实现原理的简要解释: ReentrantLock的底层实现主要依赖于AbstractQueuedSynchronizer(AQS)类。AQS是一个用于构建锁和其他同步器的框架,它提供了一种基于FIFO等待队列的同步机制。 Re...
- @TOC 前言本篇文章来讲解在Linux中tasklet,工作队列,内核线程的使用。 一、tasklettasklet在内核里面其实就是下面这样的一个结构体:struct tasklet_struct{ struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); ... @TOC 前言本篇文章来讲解在Linux中tasklet,工作队列,内核线程的使用。 一、tasklettasklet在内核里面其实就是下面这样的一个结构体:struct tasklet_struct{ struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); ...
- @TOC 前言本篇文章将给大家讲解进程间通信中的管道使用方法和概念。 一、管道的概念管道的概念来源于Unix操作系统,在Unix-like系统(如Linux)中被广泛使用。它也存在于其他操作系统中,如Windows。管道可以将一个进程的输出直接连接到另一个进程的输入,从而实现数据的流动和传输。通过管道,一个进程产生的输出可以无需写入临时文件,而是直接传递给另一个进程进行处理,这样可以提高系统... @TOC 前言本篇文章将给大家讲解进程间通信中的管道使用方法和概念。 一、管道的概念管道的概念来源于Unix操作系统,在Unix-like系统(如Linux)中被广泛使用。它也存在于其他操作系统中,如Windows。管道可以将一个进程的输出直接连接到另一个进程的输入,从而实现数据的流动和传输。通过管道,一个进程产生的输出可以无需写入临时文件,而是直接传递给另一个进程进行处理,这样可以提高系统...
- 我们现在有一个需求,我们需要对 g_exceptions 这个 vector 的访问进行同步处理,确保同一时刻只有一个线程能向它插入新的元素。为此我使用了一个 mutex 和一个锁(lock)。mutex 是同步操作的主体,在 C++ 11 的 <mutex> 头文件中,有四种风格的实现:mutex:提供了核心的 lock() unlock() 方法,以及当 mutex 不可用时就会返回的非... 我们现在有一个需求,我们需要对 g_exceptions 这个 vector 的访问进行同步处理,确保同一时刻只有一个线程能向它插入新的元素。为此我使用了一个 mutex 和一个锁(lock)。mutex 是同步操作的主体,在 C++ 11 的 <mutex> 头文件中,有四种风格的实现:mutex:提供了核心的 lock() unlock() 方法,以及当 mutex 不可用时就会返回的非...
- @TOC 前言本篇文章我们来讲解守护进程,守护进程在进程中是一个比较重要的概念,在笔试面试中也经常考到,这篇文章就带大家来学习一下什么是守护进程。 一、守护进程概念守护进程(Daemon Process)是在后台运行的一种特殊类型的进程,独立于终端会话,并且通常没有与用户交互的界面。守护进程在操作系统启动时启动,并持续运行,提供某种服务或执行特定的任务。以下是守护进程的一些特点和作用:1.后... @TOC 前言本篇文章我们来讲解守护进程,守护进程在进程中是一个比较重要的概念,在笔试面试中也经常考到,这篇文章就带大家来学习一下什么是守护进程。 一、守护进程概念守护进程(Daemon Process)是在后台运行的一种特殊类型的进程,独立于终端会话,并且通常没有与用户交互的界面。守护进程在操作系统启动时启动,并持续运行,提供某种服务或执行特定的任务。以下是守护进程的一些特点和作用:1.后...
- Python 中的 GIL(全局解释器锁) 简介在Python中,GIL是一个广为人知的概念,它影响了Python解释器的多线程执行。GIL(Global Interpreter Lock)是一种机制,它可以确保在同一时间只有一个线程在Python解释器中执行字节码。这意味着,尽管Python中有多线程的概念,但在实际执行过程中,同一时刻只有一个线程被允许执行。在本文中,我们将探讨Pyt... Python 中的 GIL(全局解释器锁) 简介在Python中,GIL是一个广为人知的概念,它影响了Python解释器的多线程执行。GIL(Global Interpreter Lock)是一种机制,它可以确保在同一时间只有一个线程在Python解释器中执行字节码。这意味着,尽管Python中有多线程的概念,但在实际执行过程中,同一时刻只有一个线程被允许执行。在本文中,我们将探讨Pyt...
- 1.linux下查看进程占用cpu的情况(top);格式top [-] [d delay] [q] [c] [S] [s] [i] [n]主要参数d:指定更新的间隔,以秒计算。q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。s:安全模式。n:显示更新的次数,完成后将会退出top。 在图1中,第一... 1.linux下查看进程占用cpu的情况(top);格式top [-] [d delay] [q] [c] [S] [s] [i] [n]主要参数d:指定更新的间隔,以秒计算。q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。s:安全模式。n:显示更新的次数,完成后将会退出top。 在图1中,第一...
- @toc 一:背景介绍最近接触到了很多池,例如 对象池、数据库连接池、线程池、等等,今天来总结一下这多种不同的池,体现的池化思想,希望通过这篇博客,大家能了解到什么是池化思想,学会应用池化思想。 二:什么是池化思想在Java中,池化思想是一种通过创建和管理可重复使用的对象池来提高性能和资源利用率的编程思想。它的核心概念是在需要时从池中获取对象,而不是每次都创建新的对象,使用完毕后将对象返回到... @toc 一:背景介绍最近接触到了很多池,例如 对象池、数据库连接池、线程池、等等,今天来总结一下这多种不同的池,体现的池化思想,希望通过这篇博客,大家能了解到什么是池化思想,学会应用池化思想。 二:什么是池化思想在Java中,池化思想是一种通过创建和管理可重复使用的对象池来提高性能和资源利用率的编程思想。它的核心概念是在需要时从池中获取对象,而不是每次都创建新的对象,使用完毕后将对象返回到...
- 通过限制Dubbo Provider服务的并发请求上限实现控制 引言在分布式系统中,使用Dubbo作为服务框架的提供者(Provider)通常面临一个重要的问题:如何控制并发请求的数量,以避免系统过载和资源竞争导致的性能问题。本文将介绍一种在Dubbo Provider服务中限制并发请求上限的方法,并提供相应的代码示例。 背景Dubbo是阿里巴巴开源的高性能RPC框架,被广泛应用于分布式系... 通过限制Dubbo Provider服务的并发请求上限实现控制 引言在分布式系统中,使用Dubbo作为服务框架的提供者(Provider)通常面临一个重要的问题:如何控制并发请求的数量,以避免系统过载和资源竞争导致的性能问题。本文将介绍一种在Dubbo Provider服务中限制并发请求上限的方法,并提供相应的代码示例。 背景Dubbo是阿里巴巴开源的高性能RPC框架,被广泛应用于分布式系...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签