PhoneMe Advanced 浅度探索七 ----JAVA平台的多任务:什么是大交易?

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

 

Mark Lam has been a virtual machine engineer in the JavaME CDC team at Sun Microsystems for over 6 years. Before joining Sun, he was a real-time embedded systems developer for 6+ years, working on application frameworks, graphics systems, networking protocols, game development, and fault tolerant systems amongst other things, on devices ranging from 64KB 8bit uControllers to 32-bit RISC machines.

原文URL:http://weblogs.java.net/blog/mlam/archive/2006/11/multitasking_th_1.html

 

         今天,我在java.net论坛看到了这个讨论。它让我感到惊奇,假如所有人都意味着同一个事情,如果当他们在谈论java平台的多任务时。因此,我决定今天暂停讨论CVM,开始多任务(这也与phoneME和CVM相关)

不承诺:在开始前,我必须阐明我的观点只代表我个人,不代表Sun,我的雇主,我在Sun的同事。

什么是多任务?

       严格的说,多任务意味着同一时间能做多个事情。对JAVA平台,这意味着能够有同时执行的代码。JAVA平台已经支持多任务。因此,这个问题是什么?人们想同时更好的运行多个程序。这到底和从不同的线程调用程序的main()函数有什么不同?不同是,程序想要自己的世界和所有的资源。简单的运行它们在不同的线程可能只有边缘效果,当一个程序能同其他操作交互的时候。因此,一个多任务JAVA平台需要能够分别隔离那些程序。那么,我在那里听到的这些特性点和行为?为什么这是现在操作系统的普遍应用。

       因此,当人们想要多任务的时候,我想他们是想要求一个JAVA进程,JAVA平台代替这些系统相关的角色。让我们看看多任务特点在系统中,看看这些在JAVA平台下证明了什么。我们应该关心人们想要的这些特点。让我们先从系统开始。。。

系统透视

       如果我们为JAVA平台处理,他们应该有下面的特点:

特点                            JAVA平台包含

同时(Concurrency)        多程序能同一时间运行在同一设备上。系统能够

                  保证程序间资源的合理分配

隔离(Isolation)          每个程序必须有自己的VM环境。一个程序不能同

                  其他同时运行的程序冲突。在错误的程序环境中,              

                  错误和不良行为能被检测

可靠的终止(Reliable Termination)  当程序出错,程序管理器必须能够中止程序并可靠

                  的回收资源

效率(Efficiency)          减少资源使用的冗余,在程序间最大限度的共享

                  资源。在JAVA VM对每个程序初始化的时候减

                  少冗余

JSR 121 Application Isolation API 定义了API来管理这些特点。同隔离成为系统处理。无论如何,有API并不是就有了执行。

人们想要什么

       这儿有一些解释关于人们为什么想要多任务。这些例子不一定能详细,但我想它们很现实,能够马上解决这个问题。

问题1:你工作在一个运行不支持进程简单嵌入式系统的设备,你不能提供系统升级因为所有的本地代码你都已经投资。升级意味着移植所有的原始代码到新的系统,这非常昂贵。你已经为所有的系统代码的许可付了钱。但是你想同时在设备上运行多个程序,程序由你不能控制的第三方提供。用户甚至需要运行一些从网络上下载的程序。不幸的,如果你的设备crash或者开始运行缓慢,你的用户将责备你而不是程序,尽管他10岁的儿子是从不安全的站点下载的程序。

       那么,你考虑。。。JAVA平台是一个虚拟运行环境,为什么你不仅仅让它保持,当程序要向其他程序或系统做坏事的时候?问题解决!

问题2:你写了一个浏览程序,需要运行JAVA程序作为插件。当你不需要它时,你可以让它到一边去而不消耗资源。你想JAVA VM提供这些。但现在,你的系统本地API不能给你一个方便的方法让你做这个。自从JAVA VM被作为一个库被装载来匹配你的浏览程序。如果你使用系统特性来赶走VM,你将结束你的浏览程序,或者让它僵死而挂起。这会让你看到不好的东西。

       那么,你考虑。。。JAVA VM是一个装载程序的东西,对吗?为什么你不把程序结束并让它自己清理干净?问题解决。

问题3:你需要同时在你的设备上运行多个java程序,但系统不让java程序共享资源。。。或者资源不够。

       你考虑。。。不少所有的java程序都需要同一个class libraries来运行?为什么JAVA VM不让他们共享内存中的同一副本?问题解决!

不够快

考虑这些。。。

       对问题1,为什么执行器不考虑执行隔离在它自己的程序里,或者改善嵌入系统来做这些?毕竟JAVA VM也是软件的一块,它也从它的程序里被启动。如果它能够改善它的系统隔离能力,那每一个启动的JAVA VM都能有它自己的进程,它的问题就会被解决。

       对问题2,为什么执行器不考虑执行,在浏览程序里,一个资源跟踪系统捕获所有被JAVA VM使用的资源和正在运行的程序?如果浏览器能跟踪所有它的资源,那么它能杀死VM和程序线程,收回所有它自己的资源。

       对问题3,为什么执行器不试着改善系统(或者询问系统提供商)来多更好的工作在共享普通资源?

       对所有3个问题的答案:这是很困难的。。。非常困难。转移这些问题到JAVA平台不会让它变容易。现在好了,这儿有几个信息,JAVA VM有可能很高机会完成这个目标。但本质上,这个问题没有变容易。

       我只想让你考虑这个问题的复杂性。当你自己解决了一个问题,你的感谢为它改变。多任务不是一个价值不高的特性,Sun或其他JAVA平台提供商能够发出其他弹点在他们的成品线路图。执行多任务是一个主要承诺

       Sun已经发出了2个多任务虚拟机解决方案对CLDC和CDC,让我们看看它们怎么工作?

引擎盖下是什么?

       上面3个举例的每一个是多任务的3个不同的需要:隔离(isolation)、可靠的终止(reliable termination)、效率(efficiency)。在现实生活中,这些特性的几个或全部都需要集中在一起。

       我不会同时谈论这些特性,因为它们不是解决方案的难点。JAVA平台已经支持同时执行线程。它不是太多延伸对建立程序并发。除非你需要一些特殊的进程安排道具,我会离开这个讨论。

隔离(isolation)

       CLDC不支持一个本地接口对本地方法。在实践中,大多数的CLDC程序是MIDlets,它是100%的纯java代码。因此,CLDC MVM只需要处理java state和java bugs的隔离

       在java state方面,我的意思是类静态域(class static fields),一个实例被系统库使用。系统库被所有的程序使用。不需要隔离,每个程序都能够在系统库里看到其他程序的操作。

       一个java bug的例子是僵死状态。一个程序有2个线程同步操作2个不同的对象在对立面。结果,每个线程将会锁住来等待另外的线程来释放其它的锁定,每个线程将永远锁定来等待其它线程。无隔离,其它程序线程可能会同步同一个对象并永久的锁住。因此,一个行为不好的程序问题会导致其它行为良好的程序。

CLDC隔离

       CLDC MVM的解决方法是复制(replicating)所有静态域在系统库中。每个隔离得到它自己的一份拷贝。结果,类/静态初始化需要对每个隔离运行一次,来保证静态拷贝的初始化是隔离的。在这个机制下,每个隔离会创建它们自己单一对象的拷贝在系统中。

    CLDC隔离同样涉及一些小把戏来确保不同的程序得到不同的锁定实例当同步在ROMized 类和字符串实例这些不能在 JAVA VM中复制的。实际字符串(interned strings)被同样的对待。

    拥有java 状态自动隔离结果在java bugs的隔离中。如果一个程序僵死,其他程序不会受到影响因为僵死程序的java state对它们不可见。

    这儿有另外一种java bug:恶意程序有目的的做一些拒绝服务(DoS)攻击对其他程序。一个例子是消耗完所有可用内存让其他程序不能运行。CLDC MVM依靠每个隔离实行资源配给来解决这个问题。如果一个隔离试图获得额外的资源,它会得到一个内存不够(OutOfMemoryError)的错误,而其他程序仍可以分配内存 。

CDC隔离

       CDC需要为本地方法支持java本地接口(JNI)。因此,CDC VM需要为每个本地状态或错误提供隔离。本地状态,我的意思是本地代码的全局和静态变量。本地错误包括那些残留在内存中的废指针,分裂的块(segmentation faults),非法的指令等等。

    掌握这些是在系统进程中隔离本地代码的唯一出路。。。对每一个程序。CDC VM做这些是完全正确的。它使用特殊的处理类型叉子(fork)来生产新的隔离。每个隔离运行在它们自己的进程中。CDC MVM当前仅仅在linux和solaris下可用,因为这有这些系统提供叉子(fork)兼容。Java级的隔离是进程自动掌握的。

    象DoS攻击应付资源缺乏,CDC VM应用系统去执行配额假如需要。这没有什么不同和本地程序对应资源缺乏的解决方法来说。

可靠的终止

CLDC 隔离终止

       CLDC MVM提供自己的线程库。当它需要终止程序时,它简单的选择不计划更多的程序,并取消所有的参考来隔离。因为所有的程序都是100%的纯java代码,它们的资源会通过垃圾回收(garbage collector)来清空。一些资源有本地副本,这些会被那些由GC触发的私有终结器(finalizers)来清空。注意:终结器不是CLDC规格的一部分。它是一个VM提供的一个被系统库使用的执行。

CDC 隔离终止

       CDC MVM里的隔离有自己的进程,终止是简单的杀死各自的进程。

效率

CLDC 普通资源共享

    CLDC MVM,所有的隔离作为线程运行在同一个物理VM,它们自动共享所有常量数据。这包括类的元数据(metadata)(比如常量池,属性),method bytecodes,ROMized对象和内部字符串。

    每个隔离从java堆中得到一个配额。通常,从java堆中分配的资源不是共享的。无路如何,这儿有更少的内部破碎因为分配的隔离来自同一个堆。

    开始一个新的隔离不需要VM完全重初始化。无论如何,系统库的类初始化需要重运行。

CDC 普通资源共享

       CDC MVM,隔离是从一个共同的进程分离(fork)出来的不同的进程,它们共享作为数据的只读内存页,不需要写入。CDC MVM采用几种技术来帮助系统最大化共享。

    在CDC MVM开始一个新隔离也不需要child VM完全重新初始化,但工作线程需要重生因为进程分离(fork)不和线程工作。象CLDC,类的初始化也需要重运行。

CDC MVM是真的MVM?

       如果CDC MVM应用它的很多特性在系统进程,它和其他简单运行完整CDC VM的不同实例在进程中有什么不同?MVM被优化来允许有效的资源共享,但单个完整的VM做不到。这些优化也导致了一些性能上的开销但不会在单个完整VM上。什么?MVM有性能开销?为什么?是的,你想它会免费?你在2个隔离之间共享更多,开销也会更多。反过来也一样。但通常开销只有2~3%(如果我记得正确)。这可能或不可能成为你需要性能上的重要依靠。

       MVM和程序管理器一起来管理隔离,和单个完整VM运行在不同进程不一样,你有你自己的进程。

       在练习中,不是所有的隔离完全可用因为系统进程也会使用。比如,一些物理资源(硬件和系统)不能复制。因此,访问这些资源需要在隔离之间协调以至于它们不能相互一起。一个例子是绘画屏。Java类库(或他们的本地代码)需要修改来允许隔离间的协调。这个协调有程序管理器控制。

       物理资源的协调由CLDC MVM来执行。

我能在CDC中使用CLDC风格的MVM吗?

       技术上可以。。。但是这儿有个问题。CLDC风格的MVM不能做关于本地代码隔离的事情。那么,让我们看看我们只需要在环境中配置VM在我们保证那儿没有本地代码在程序中(或者我们拒绝有本地状态的程序)。那么我们能使用CLDC风格的MVM了吗?

       是的,但这儿仍然充满了附加的挑战。CDC的VM(CVM)运行在完全pre-emptive的本地线程上。调度程序在系统中,不是VM。因此,VM在线程调度上没有控制权(如果系统不提供这个机制。。。通常,他们不提供)。因此,近似于CLDC不能进行可靠的终止工作。

       我们还记得老的Thread.stop()API。但我们已经知道它有一个问题。但是,我们在这儿谈论的是100%的纯java代码程序。我们说我们不会让任何的本地代码运行。我们有CLDC风格的MVM来隔离java状态。这会让Thread.stop()的问题走开吗?现在让我们的任务终止?

       是的,我们可以让它工作。VM可以设置一个标志来在隔离中指出一个终止状态来终止。检查这个终止状态需要插入一系列的地方:VM Interpreter,JIT编译器生产的编译后代码,本地代码中的循环。这些保证线程被终止

       在这些检查点,如果终止状态被检测到,一个未捕获的异常将被抛出。VM会忽略try-catch块当它出来这个异常。这确保程序不能捕获异常并防碍线程被终止。异常会导致java和本地堆栈展开。

       VM能够展开堆栈框架为java bytecode methods。但本地方法会要求本地方法检测异常并返回。因此我们不允许任何程序的本地代码,我们只在系统库中处理本地代码。每个本地方法会被修改来检测终止状态,确保它作为异常的替代返回

       另外,所有本地方法需要被检查以确保他们释放了所有的由他们方法中分配的资源。这些资源必须被清空在方法返回异常堆栈展开前。一些本地资源没有被分配和使用在一些本地方法。对这些类型的资源,我们需要确保他们同finalizer java对象的关联,因此他们能被取回当对应的java对象被GC时。

为什么我不能有自己的CLDC风格的MVM在CDC?

       你是不是感到疲惫?我们需要做这么多步骤为了在CDC中执行CLDC风格的MVM无疑是冗长的。现在考虑CDC库同CLDC库的复杂度和大小。因为所有本地库将被适当的修改来迎合CLDC风格的MVM正确的工作。这个执行努力是相当的高。风险也相当的高。

       另外,如果VM部署在一些中间设备堆(例如对机定盒的MHP中间设备),所有这些中间设备的本地代码也需要同样的处理来保证CLDC风格的MVM正确工作。

       因此,这个风格的MVM对CDC来说执行难度是相当的高。Sun究竟有没有试验代码在CVM上来执行这种MMV。因为执行的花费和风险包含本地代码部分,这些代码从来没被完成。但是,它和快会被开原在下一个phoneMe Advanced版本,欢迎每一个感兴趣的人来完善它。

JavaSE的MVM?

       CDC风格的MVM可能或不可能在JavaSE中运用。这些VM的结构不同。但是,他们可能或不可能有利于这个途径。JavaSE VM的类共享特性已经是这个方向的一步了。

       CLDC风格的MVM。如果你明白它同CDC的不同,你可以看到它已经很大程度上接近JavaSE了。这是因为JavaSE有相当大的类库。但是,只有这些库中的本地代码会被贡献不同。幸好,JavaSE库的大部分是纯java代码,但这足够让这个任务较少的让人畏惧。

如果我不需要所有的隔离特性?

       CDC,你已经有命名空间隔离通过使用类装载器(classloader)。这儿有部署在基于同步线程和类装载器命名空间隔离的系统。但是,这些系统经受不同的缺点来自真隔离的。一个通常的抱怨是一个行为不当的程序能够坠毁整个系统,所有的程序都同它一起坠毁。

       已经有厂商提供MVM解决方案。我总是希望他们能做一些工作象Sun在分析问题,或者他们提供一部分的解决方案。但是我没有使用他们的VM,我不知道他们的MVM是怎样完成的。

这对你意味着什么?

我希望你现在理解这个令人畏惧的任务包含在建立MVM解决方案中。我明白当你需要MVM的时候它还不可用,知道去执行这个这是很困难的。

但是,现在java平台开源了,如果这些特性对你来说非常重要,请贡献在VM领域。如果我们为这个工作在一起一点时间,我们能让MVM更快实现。

Multisim14.2新建项目教程 这里用一个案例,具体说明电路仿真分析的基本流程。等。本案例的电路目的:对一个交流小信号进行采样、放大,将交流小信号转换成脉冲信号。然后用一个简单的数字计数器对脉冲信号的周期进行计数,并用七段数码管和发光二极管显示计数过程。启动Multisim 14.2软件,在“工作区”出现一个名为“设计1”的空白图纸,选择“文件”→“另存为(a)…”,出现一个标准的Windows保存文件对话框。按导航定位到要保存文件的位置,输入“×××”作为文件名,然后单击“保存”按钮。注意。 阅读详情

相关推荐

Arduino MLX90393磁力计驱动库:高精度三轴霍尔传感器开发指南

三轴霍尔效应磁力计是嵌入式系统中实现无接触角度检测、电子罗盘与电流传感的核心器件。其工作原理基于霍尔电压随外磁场矢量变化的物理特性,通过I²C接口输出高分辨率(16/20-bit)XYZ轴原始数据,并集成温度补偿与数字滤波功能。技术价值体现在确定性响应、低功耗(典型0.5 μA待机)及强抗干扰能力,适用于电池供电设备与实时操作系统环境。典型应用场景包括电机位置反馈、永磁体旋转角度解算、工业编码器和地磁导航。本库专为Arduino生态优化,深度封装MLX90393寄存器协议与自校准流程,同时兼容STM32、E

weixin_29363791的博客 642

(二)目前主流的 Java 虚拟机有哪些?

我们都知道目前jdk默认用的是HotSpot虚拟机,那么为什么要用HotSpot虚拟机?除了他就没别的虚拟机了吗?虚拟机到底是怎么编译运行的?伴随着这些疑问,结合着【深入理解Java虚拟机】一书当中整理了本篇博客,感兴趣的可以跟着博主学习一下!

怪咖@的博客 3714

告别F5失灵!手把手教你为Cursor配置.Net Core控制台项目专属调试环境

本文详细指导如何在Cursor编辑器中为.Net Core控制台项目配置专属调试环境,解决F5失灵等常见问题。从调试器选择到launch.json配置,再到高级调试技巧,帮助开发者高效搭建完整的调试工具链,提升开发效率。

weixin_28834765的博客 288

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303

计算机三级考试嵌入式系统重点精简汇总

第一章 嵌入式系统概论 1.1.1嵌入式系统 (1)特点:(1)专用性;(2)隐蔽性;(3)资源受限;(4)高可靠性;(5)实时性;(6)软件固化。 (2)应用:(1)冰箱、洗衣机、电饭煲、空调、摄影机、DVD播放器等;(2)数控机床、飞机、汽车、电梯、X光机、血压计等;(3)电话机、传真机、打印机、pos机、GPS导航仪、路由器等。 1.1.2嵌入式系统组成与分类 (1)逻辑组成:硬件和软件,分为处理器、存储器、I|0设备与I|O接口,数据总线; (2)处理器:分为主处理器(CPU)和协处

chemkrik的博客 1万+

麒麟OS恢复出厂设置原理与实操:非重装的系统状态回滚

Linux操作系统中的‘恢复出厂设置’并非简单重装或镜像还原,而是一种基于状态快照、包管理与配置模板的可控回滚机制。其核心原理依赖LVM快照技术、RPM包签名验证和预置配置模板,兼顾系统稳定性与用户数据安全。该方案在政务、教育等国产化场景中具有显著技术价值——不格式化硬盘、不丢失/home文档、不重配驱动与授权,大幅降低运维复杂度。典型应用场景包括系统卡顿修复、软件冲突清理、桌面环境异常恢复等。本文深入解析银河麒麟V10的kylin-restore-cli工具链与麒麟管家集成逻辑,聚焦‘恢复出厂设置’这一高

weixin_30879169的博客 777

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 545

手把手教你学Simulink——基于重复控制(RC)的并网逆变器场景实例:基于RC的单相并网逆变器仿真

本次教程深入剖析了重复控制(RC)在单相并网逆变器中的应用,解决了周期性谐波抑制这一核心难题。核心收获RC是谐波抑制的“核武器”:它利用内模原理,对所有周期性谐波提供无限大增益,实现理论上无静差的跟踪和抑制。PI+RC是黄金组合:PI提供快速响应,RC提供稳态精度,二者结合,兼顾了动态与稳态性能。结构简单,效果卓越:相比多个PR控制器,RC仅需一个模块,即可抑制所有谐波,设计简洁。电能质量的终极追求,是波形的纯净。重复控制,如同一位不知疲倦的校对员它记住每一次错误(上一周期的误差),

MHD0815的博客 189

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 333

基于SAHI算法优化YOLOv8的小目标检测性能研究

SAHI(SliceAwareHyperInference)是一种推理优化算法,通过将大图切片为小块并分别推理的方式,实现更精细的小目标检测。提升小目标检测精度:切片后的小目标在每个小块中占比更大,模型能够更好地聚焦。兼容性强:可直接集成到现有目标检测框架中(如YOLO系列、Detectron2等)。支持大分辨率图片和视频推理:减少硬件对大图推理的限制。本文详细探讨了如何通过SAHI(切片辅助超推理算法)结合YOLOv8模型,有效提升小目标检测性能,尤其是在高分辨率图片和视频场景中表现优异。

博客 2373

传导案例:某医疗仪器传导骚扰整改案例

紫外线光疗仪是一种专业的医疗设备,主要用于治疗银屑病、白癜风等皮肤疾病。该设备采用物理治疗技术,通过特定波长的紫外线照射人体来达到治疗效果。自1984年窄谱中波紫外线(NB-UVB)应用于临床以来,该技术已成为治疗早期蕈样肉芽肿(MF)的有效方法之一。作为二类医疗器械,紫外线光疗仪必须符合严格的电磁兼容性(EMC)标准,这不仅关系到设备自身的稳定运行,更关乎患者的使用安全和治疗效果。紫外线光疗仪传导骚扰整改案例充分展示了系统性EMC设计的重要性。

m0_56451176的博客 340

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 575

CP AUTOSAR标准之AUTOSAR OS(AUTOSAR_SWS_OS)(二)

AUTOSAR OS是一个Operating System,即操作系统。它最核心的功能是管理任务和事件的调度,不同任务间的同步流,并且提供监控和错误处理功能。或者用最简化理解就是一个函数调度器。

CoolBreeze的博客 655

Java 集合容器高频面试题全解:HashMap 树化阈值、1.7 死循环与 ConcurrentHashMap 演进(2026 招聘 JD 真题复盘)

HashMap 树化阈值 8 的泊松分布依据、退化阈值 6 的防抖设计、JDK 1.7 头插成环死循环的排查与修复、1.8 尾插后为何仍线程不安全、ConcurrentHashMap 放弃分段锁的原因与 ForwardingNode 协作扩容、computeIfAbsent 死锁陷阱、大集合找重复的场景题选型,附三层追问链自测。题目来源为 38 期公开招聘 JD 样本与字节、拼多多、建行、美团、快手公开面经。

蒙眼过河 423

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spdlog 同步日志库使用详解

spdlog是一个轻量级 C++ 日志库,支持同步日志、异步日志、多线程日志、日志文件轮转和自定义日志格式。对于嵌入式 Linux 应用开发,我建议先使用。它可以帮我们完成:日志级别过滤。时间戳和线程 ID 输出。日志格式化。终端和文件输出。多线程安全写入。日志文件按大小或时间轮转。我们不需要自己实现互斥锁、文件写入、日志格式化和轮转等底层功能。

zengjiajun2006的博客 1121

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

JavaSE通关手册:数据类型与变量

代码无需额外处理,编译时编译器自动完成转换。

xys_678的博客 232

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 368

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 180

Docker部署linkding:HTTPS与数据备份

部署私人书签库,除了让页面能够打开,还需要考虑几个实际问题:重建容器后数据是否保留、登录和保存是否正常、升级前怎样备份,以及出现 502 或 CSRF 错误时从哪里检查。本文使用 Docker Compose 部署 linkding,采用默认 SQLite 数据库,通过 Caddy 提供 HTTPS,并完成账户创建、数据持久化验证和备份。如果重建后账户或书签消失,应先检查是否换了项目目录、改了挂载路径,或者启动了另一套实例,不要急着重新初始化。遇到权限问题,应根据日志确认具体目录和运行用户,再调整权限。

tedcloud123的博客 173

动态代理两大流派:JDK 代理与子类代理

业务类想加日志,最直白的写法是侵入式修改: 问题很明显:每个方法都要改一遍,改一个业务要动十处。代理模式的解法是:调用方不直接依赖 ,而是依赖一个代理对象。代理对象长得跟目标一模一样,调用它 → 代理先执行增强逻辑 → 再转调真实对象。 关键在于:代理对象的类型是哪来的?这就是"动态"二字的含义:代理类在运行时才诞生。两个角色: 承载增强逻辑, 负责生成代理类。 组装代理并调用: 输出: 业务代码 一行没动,增强逻辑全在 里。这就是 AOP 的味道。 内部四步: 第 2 步 内部:先查 (同一个接口

Android的专栏 654

C++20协程怎么运行?原理与三大核心组件深度剖析

C++20协程是轻量级的无栈状态机,通过co_await、co_yield、co_return实现挂起与恢复,由Promise、协程句柄和Awaitable三大组件协同工作。协程与线程互补,适用于高效管理大量并发I/O任务,显著降低上下文切换开销。其核心在于编译器生成的状态机机制,需配合库(如cppcoro)使用。掌握Promise控制逻辑、句柄生命周期管理及Awaitable语义,是构建高性能异步程序的基础。

Lucis__的博客 155

c++ explicit关键字详解

explicit。

拒绝AI文,努力在AI时代写出感动人心的好文章 169

TRingBuffer两端都能增删(快递站版)

TRingBuffer 是一个支持两端增删、下标访问且容量动态增长的环形双端队列。它通过无符号索引的永不归零设计,利用减法自动模运算实现空满判断与元素计数,避免了传统环形缓冲浪费格子的问题。内部以票号(索引)标记首尾,扩容时重排元素为连续存储,保证 O(1) 操作与高缓存效率。虽不线程安全,但其高效性使其成为游戏开发中事件队列、命令缓冲等场景的理想选择。

u013768914的博客 312

Teamcenter Java SOA 开发:连接、查询与保存

本文介绍如何通过 Java 调用 Teamcenter SOA 接口实现外部系统对接,涵盖连接登录、查询保存等核心操作。以最小闭环示例展示 Connection、Service、ModelObject 等关键组件的使用,强调错误处理与事务管理要点。梳理了 DataManagement、Query、File Management 等 API 模块分工,并结合“工作移交WebService”案例,说明幂等性设计与流程状态返回的重要性。适用于 Web 门户、ERP 集成等场景,建议批量操作用 bulk 接口优化性

软件工程师文艺 273

Mac上装了最新版本的Android Studio,但是没找到jdk的设置选项也没找到jbr的目录

新版Android Studio(2025.3.1+)因三项变更导致常见问题:一、JDK设置移至“DaemonJVM criteria”,新项目默认自动探测或下载JDK;二、JBR目录改名为带版本号的jbr-21等,需进入.app/Contents/查看,或通过About窗口确认运行时;三、命令行缺adb因platform-tools未加入PATH,需在SDK Manager中勾选并配置~/.zshrc中的ANDROID_HOME及PATH。重装或清理残留可解决缺失问题,切勿手动设JAVA_HOME或安装冲

Programming is a highly artistic endeavor 390

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 505

建造者模式,就是“点套餐”而不是“背配方”

建造者模式如同点套餐:无需记住复杂配方,只需一步步选择配置,最后build()交付完整对象。它将复杂对象的构造过程解耦,通过链式调用实现清晰、灵活、可读性强的构建方式,广泛应用于奶茶点单、电脑组装、盖房建屋及Spring Boot等场景,有效避免参数爆炸与语义模糊问题。

weixin_51288065的博客 271
上一篇: PhoneMe Advanced 浅度探索八----一张大图片:CVM的地图
下一篇: phoneME Advanced Peer File Structure
普通网友
普通网友 领域专家: 编程技术技术领域 领域专家: 编程技术技术领域
博客等级 码龄25年 2837粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值