1. DAC(Discretionary Access Control) 自主访问控制 核心特点: 资源拥有者决定权限:用户对其拥有的资源(如文件)有控制权,可以授予或撤销他人的访问权限。 权限可继承/传播:被授权的用户可以继续把权限授予其他用户(这可能导致“权限扩散”)。 举例: 用户 A 拥有一个文件 file.txt,他设置权限让用户 B 也…
在嵌入式系统中,任务之间的通信是实现并发、同步和资源共享的关键。FreeRTOS 提供了多种通信机制,以满足不同的应用场景和性能要求。本文将重点介绍三种常用的通信方式:消息队列(Queue)、邮箱(Semaphore)和任务通知(Task Notification),并通过代码示例分析其适用场景和使用方法。 一、消息队列(Queue) 概述 消息队…
贪婪算法(Greedy Algorithm) 1. 基本思想 每一步都做当前看来最优的选择(即局部最优),希望通过一系列局部最优,达到整体最优。 特点是只顾眼前(每次选择最优),不回溯。 2. 贪婪问题分类 绝对贪婪问题: 每一步的局部最优选择,最终一定得到全局最优解。 例子:活动安排问题、最小生成树问题。 相对贪婪问题: 贪婪算法得到的解不是全局…
项目理解 一个使用了ActiveMQ消息队列的订单-物流系统,两个系统之间通过消息队列来通信,主要有order.created.queue和logistics.updated.queue两个消息队列。 order.created.queue是一个订单创建消息队列。当新订单创建时,系统会将订单信息发送到此队列,通知其他系统或者服务去处理与该订单相关的…
分治算法 分治思想: 分治算法是一种将一个复杂问题分解成多个较小的子问题,通过递归解决子问题,再将子问题的解合并起来,得到原问题的解。分治思想的核心是通过将问题规模减小、分解和组合来简化问题的解决。 分治算法的基本步骤: 分解:将问题划分为多个规模较小、结构与原问题类似的子问题。 解决:递归地解决这些子问题,当子问题的规模足够小或问题简单时,可以直…
一个Spring的AOP练习程序。 \---springdemo │ SpringDemoApplication.java │ ├─aop │ MyAspect.java │ ├─controller │ Test.java │ └─service Another.java 对于Spring来说,其AOP的实现十分简单。只需要在导入相关依赖之后在注…
Java RMI,即 远程方法调用(Remote Method Invocation),它的实现依赖于Java虚拟机(JVM),RMI允许在一个Java虚拟机中运行的对象调用在另一个Java虚拟机中运行的对象上的方法。RMI是Java的一组拥护开发分布式应用程序的API,RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程…
一个面向切面编程的练习程序。其中面向切面编程采用的是配置文件的做法,支持多个前置方法和后置方法,按照配置文件中的优先级区分执行顺序。食物类通过注解获取食物名称和价格。 \--aop │ FoodInfo.java │ Kitchen.java │ MyAspect.java │ Proxyhandler.java │ Restaurant.java…
一个RPC(Remote Procedure Call)远程过程调用的练习程序。 \---client Client.java Connector.java DynamicProxyFactory.java RemoteCall.java RPCService.java RPCServiceImpl.java Server.java RemoteC…
在代理模式中,我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 \---demo DynamicProxyDemo.java OneService.java Service.java StaticProxyDemo.java TwoService.jav…