主动对象与被动对象

深入理解JVM虚拟机第十篇:两个Class对象是否来源于一个类文件的标准以及类的主动使用与被动使用 本文是深入理解JVM虚拟机系列文章中的第十篇,主要介绍了如何判断两个Class对象是否来源于一个类文件的标准,以及详细介绍什么是类的主动使用与被动使用 阅读详情

在软件工程和程序设计中,主动对象和被动对象是两种不同类型的对象,它们的主要区别在于它们的行为方式和系统资源的使用。

主动对象

主动对象拥有其自己的控制流程,也就是说它们拥有一个线程或者是在一个可以执行的上下文中。它们能够独立于其他对象行动,可以初始化操作,对事件作出反应并独立进行决策。因为它们有自己的控制流程,主动对象通常负责管理其内部状态的改变,并且能够在没有外部调用的情况下开始处理任务。

常见的主动对象实例包括:

  • 服务端进程,它独立于其他对象监听网络请求。
  • 定时器,它在预定的时间触发事件。
  • 工作线程,它执行一系列任务而不需要外部触发。

在嵌入式系统设计中,主动对象可能代表一个实时任务或者一个中断服务例程(ISR),这些都是在硬件触发信号后自主执行的实体。

被动对象

被动对象没有自己的控制流程,它们不启动操作,而是对来自主动对象或外部源的请求作出反应。被动对象通常维护一定的状态,但它们一般不独立于外部的调用者来改变这个状态。它们的行为通常是同步的和可预见的,因为它们只在被直接调用时才会执行行为。

被动对象示例包括:

  • 数据结构如栈或队列。
  • 数据模型对象,它纯粹用来封装状态。
  • 业务逻辑对象,它仅在其他对象(通常是主动对象)请求时执行操作。

被动对象在多线程或并发环境中必须小心处理,通常需要保证它们的线程安全性,因为它们可能会被多个主动对象同时访问。

总结

简而言之,主动对象是“做事的对象”,它们具有主动性,能够自发地执行操作,往往与异步处理和并行活动相关。而被动对象则更像是被动地“让事情发生在其身上”,通常用来存储和管理数据,它们的行为总是由其他主动对象触发。

在设计嵌入式或者并发系统时,恰当地使用主动对象和被动对象可以帮助开发者有效地管理复杂度和系统的可预测行为,同时确保系统的响应性和性能。

vmware vsphere 证书过期告警处理方法 vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象 阅读详情

相关推荐

Zemax新手别慌!一文搞懂几何像差:从球差、慧差到色差的实战识别与优化

本文为Zemax新手提供几何像差实战指南,详细解析球差、彗差和色差的识别与优化方法。通过软件操作关键节点和实际项目决策逻辑,帮助光学设计师快速掌握像差诊断与优化技巧,提升光学设计效率。

weixin_42524708的博客 258

面向对象设计与实用的思考(主动对象与被动对象)

在项目中遇到这么一个问题,相信很多做过一点架构设计的都遇到过。 以一个最常用的工作流为例,有审批者——被审批的申请--审批动作 按照面向对象思想,应该是先new 一个审批者,审批者执行审批动作 Auditer auditer=new Auditer("John"); Apply oneApply=new HolidayApply();//休假HolidayApply:Appl...

weixin_30826095的博客 486

ADS中HB仿真自动优化报错问题解决心得

在ADS HB仿真中自动优化出现报错被强制暂停,解决方法如下

yyyyyyyyyyjy的博客 6541

Qt中的继承与组合,主动对象和被动对象

m0_63736943的博客 442

Oracle数据库的内存管理优化技巧

Oracle数据库作为企业级数据库管理系统,广泛应用于各种业务场景。内存管理是Oracle数据库性能优化的关键环节,合理的内存管理可以显著提高数据库的响应速度和吞吐量。本文的目的是深入探讨Oracle数据库内存管理的优化技巧,涵盖了系统全局区(SGA)和程序全局区(PGA)的管理、内存分配算法、内存参数调整等方面。通过详细的讲解和实际案例分析,帮助读者掌握优化Oracle数据库内存使用的方法,提高数据库的性能和稳定性。

2502_91592937的博客 996

【SAM2系列】windows单GPU复现时的bug解决记录

windows运行sam2,就感觉在开一艘破破烂烂的船,每走一步报一个错,bug源源不断的冒出来😭😭😭😭😭。

weixin_43571113的博客 1317

面向对象技术伪术语--主动对象的批判 续

提出主动对象这个概念的人也许是为了能在面向对象技术和并行技术间搭一座强梁。面向对象技术模拟的是自然的世界。其中的对象一旦产生就处在运行中,而计算机却只能有一个启动进程。(下面我用线程这个术语表示进程和线程。)就算在该启动进程中启动更多的线程,其可同时运行的线程数总还是远远少于一个面向对象系统中对象的个数。我猜测他们可能用主动对象表示其服务程序运行在单独线程中的对象,而被动对象指其服务程序运行在主线

javayuan的专栏 1097

DeepSeek邮件管理全攻略

DeepSeek邮件助手是一款高效的邮件处理工具,提供智能分类、撰写、回复和任务自动化功能。通过API调用或多智能体系统,它能自动分类邮件意图、生成专业回复并优化邮件内容。核心功能包括智能过滤、会议安排和任务提醒,支持与主流邮箱服务集成。提供精准提示词模板,帮助用户快速生成得体邮件,提升工作效率。适合个人和企业使用,通过简单配置即可实现邮件处理自动化。

Genio_Wang的博客 180

locate用主动还是被动_基金买主动型还是被动型,对你来说很重要

基金投资,你所要知道的那些事(二)上一篇我们谈到了投资基金时候是选择A类还是选择C类的区别,今天我们来看一个另外的选择,买基金你到底是选择主动型呢,还是被动型呢?什么?只知道谈恋爱的时候会有主动一方和被动一方,基金投资也有主动和被动?别急,今天我们就来看看这个主动和被动到底是什么,以及对大家的影响。其实说起来,这个和找女朋友或者男朋友是一样一样的,你往下看就知道了。如果有购买基金的经验,就会发现,...

weixin_39575737的博客 625

Android 车载应用之快速入门

车载 Android 系统也被称为 Android Automotive OS,是对原始 Android 系统的一个功能扩充版本。与手机系统一样,Android Automotive OS 源代码完全开放,第三方供应商和汽车制造商可以官方源码的基础上自行开发和拓展,无论是编程语言还是各项接口,都与 Android 系统保持了一致。

xiangzhihong8的专栏 1112

【从零开始学习SLAM】官方tf教程小海龟跟随程序

ros tf 进行坐标系之间转换的运算和发布

小秋 AI SLAM 入门实战教程 2033

类的主动引用跟类的被动引用

类的主动引用(一定会发生初始化),类的被动引用(不会发生类的初始化),发生类的主动引用有五种情况分别是: new一个类的对象 调用类静态变量,和静态方法 对类进行反射调用 启动main方法所在的类 当初始化一个类,如果其父类没有被初始化,则先会初始化他的父类 类的被动引用有三种情况分别是: 引用常量不会触发此类的初始化(常量在编译阶段就存入调用类的常量池中了) 通过数组...

weixin_44552194的博客 303

AI 实战篇 |基于 AI开放平台实现 人脸识别对比 功能,超详细教程【附带源码】

本篇文章来学习一下怎样使用 Unity实现简单地人脸识别 功能。 关于人脸识别,我们可以选择很多平台的SDK接入Unity来实现人脸识别的功能。

努力前行,总会成为自己心中的那道光 5万+

主动对象(转载)

5.1 主动对象   那么到底什么是主动对象呢?传统上,所有的对象都是被动的代码段,对象中的代码是在对它发出方法调用的线程中执行的。也就是,调用线程(calling threads)被“借出”,以执行被动对象的方法。   而主动对象却不一样。这些对象持有它们自己的线程(甚或多个线程),并将这个线程用于执行对它们的任何方法的调用。因而,如果你想象一个传统对象,在里面封装了一个线程(或多个线程),你就

dong364的专栏 985

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ACE 主动对象模式的按部就班的实现方法

ACE的主动对象模式的实现 对分布式系统设计来说,ACE提供的主动对象模式是让我们在系统框架构建的时候,回归到传统的单线程编程思维。你可能要问,既然有主动对象,那必然有被动对象,没有错,确实有被动对象,那到底什么是主动对象?什么又是被动对象呢? 被动对象: 假如我们要给一个客户端提供一个方法,计算两个数之和。我们一般定义一个对象,然后实现具体的加法运算操作,客户端在调用的时候,首先实例化我们

点点滴滴 1356

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

主动对象

主动对象那么到底什么是主动对象呢?传统上,所有的对象都是被动的代码段,对象中的代码是在对它发出方法调用的线程中执行的。也就是,调用线程(calling threads)被“借出”,以执行被动对象的方法。而主动对象却不一样。这些对象持有它们自己的线程(甚或多个线程),并将这个线程用于执行对它们的任何方法的调用。因而,如果你想象一个传统对象,在里面封装了一个线程(或多个线程),你就得到了一个主动对象。...

weixin_30641465的博客 148

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

9.如何判断两个Class对象是否相等?类加载器的引用,类的主动使用和被动使用

1.两个class对象是否相等的条件 1.类的完整类名必须一致,包括包名。 2.加载这个类的ClassLoader(指的是ClassLoader实例对象)必须相同。 换句话说,在JVM中,即使两个类对象(Class对象)来源于同一个Class文件,被同一个虚拟机加载,但是只要加载它们的ClassLoader实例对象不同,那么这两个Class对象就不相等。 2.类加载器的引用的保存 JVM必须知道一个类是由启动类加载器加载还是由用户类加载器加载(除了启动类加载器之外的加载器)。如果一个类是由用户类加载器加载

simpleGq的专栏 3507

(ACE)Ace_Task与主动对象

(ACE)Ace_Task 由两部份组成 :一个或多个线程 、一个底层消息队列 主动对象 :就是在执行方法调用的时候是异步的,常 使用 Ace_Task 实现对方法启用队列的处理。这里的方法相当于 在 ACE_Task里底层消息I/O。 比如写日志,如果采用传统的被动对象模式,那么加的日志写块越多,对整体OO软件性能将是大的削弱。而且容易出现I/O异常,如果采用主动对象模式就不一样了。怎么...

Get my world,break free! 631

JVM- 如何判断两个class对象是否相同 && 类的主动使用和被动使用

如何判断两个class对象是否相同 在JVM中表示两个class对象是否为同一个类存在两个必要条件: 类的完整类名必须一致,包括包名。 加载这个类的ClassLoader(指ClassLoader实例对象)必须相同。 换句话说,在JVM中,即使这两个类对象(class对象)来源同一个Class文件,被同一个虚拟机所加载,但只要加载它们的ClassLoader实例对象不同,那么这两个类对象也是不相等的。 JVM必须知道一个类型是由启动加载器加载的还是由用户类加载器加载的。如果一个类型是

weixin_58104242的博客 565

面向对象-并发处理

一个并发对象(主动对象)拥有自己的控制线程并能独立于其他的对象而执行。被动对象中的一个操作一旦被并发对象调用,就会在并发对象的控制线程中执行。并发应用支持异步的消息通信,因此一个并发的源对象能够向一个并发的目标对象发送一条异步的消息,源对象随后继续执行,而不用考虑目标对象何时接收到这条信息。对象经常是被动的,也就是说,它们等待另一个对象来调用它们的操作,并且从不启动任何行动。主动对象也被称为并发对象,独立于其他的主动对象而执行。当一个对象调用另一个对象的操作时,控制就会从调用操作传递到被调用的操作。

技术日常 261

趋高Fuxi程序设计语言主动式对象

趋高Fuxi程序设计语言主动式对象 Fuxi中带有active风格的对象,称为主动式对象(Active Object),其它非主动式对象称为被动式对象(Passive Object)。每个主动式对象都具有独立的线程、独立的消息队列、独立的执行堆栈。出于实现上的考虑,Fuxi规定,每个被动式对象必须包含于某个主动式对象。主动式对象内部的方法调用(Method Invocation),就是普通的调用(Call),而两个主动式对象之间的方法调用,则通过消息传递(Message Passing)来进行。 在程序执行

fuxi_hitrend的博客 178

ACE主动对象模式(1)

主动对象模式用于降低方法执行和方法调用之间的耦合。该模式描述了另外一种更为透明的任务间通信方法。 传统上,所有的对象都是被动的代码段,对象中的代码是在对它发出方法调用的线程中执行的,当方法被调用时,调用线程将阻塞,直至调用结束。而主动对象却不一样。这些对象具有自己的命令执行线程,主动对象的方法将在自己的执行线程中执行,不会阻塞调用方法。 例如,设想对象"A"已在你的程序的main()函数中...

weixin_34235371的博客 175

JVM类加载机制和创建对象的过程

1、JVM运行和类加载过程一、类的加载机制类加载机制:JVM把class文件加载到内存,并对数据进行校验,解析和初始化,最终形成JVM 可以直接使用的Java类型的过程。主要有三步:加载、连接、初始化。其中连接又可以细分为:验证、准备和解析。加载:类的加载是指把.class文件中的二进制数据读入到内存(方法区)中,将字节流代表的静态存储结构转化成方法区的运行时数据结构,之后在堆区创建一个(java...

qq_29864971的博客 2172

《软件建模与设计: UML、用例、模式和软件体系结构》一一2.8 并发通信图

本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第2章,第2.8节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.8 并发通信图 在UML表示法中,一个主动对象可用于描绘一个并发对象(concurrent object)、进程(process)、线程(thread)或...

weixin_33724570的博客 341

回顾面向对象

Oriendted意味着一种信仰,它相信所有的软件都是由对象构成的。在代码里写class就行了。 Oriendted Based:有先有后的秩序(用户需求)。 Driven:引导,汽车的司机只是引导汽车行驶,引擎才是推动汽车前进 。 Centered:以什么为中心。 SOA:相信这个软件都是以服务构成的。 认识才是对象。 对象之特性或属性(attribute) 对象之行为(

a445012100的专栏 720
上一篇: 根据事务识别对象
下一篇: STM32F030C8T6 DMA
Let's Chat Coding
博客等级 码龄3年 1020粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值