CVD-Risk-Prevent 个性化心血管健康推荐系统:基于医学指南的规则框架与 LLM 的结合

CVD-Risk-Prevent 个性化心血管健康推荐系统:基于医学指南的规则框架与 LLM 的结合

    • 提出背景
      • 推荐算法的选择
      • 选择疑问
      • 健康指标管理
      • 心血管风险因素
      • 目标设定
      • 实现目标的计划
      • 推荐的多维性
    • 算法关键点:如何将心血管健康指标转换为多维推荐?
        • 确定风险因素和类别
        • 生成多维推荐
    • CVD-Risk-Prevent 拆解

 


提出背景

论文:https://arxiv.org/pdf/2405.11967

一种基于官方医疗指南开发的心血管疾病(CVD)风险管理推荐系统。

这个系统名为CVD-Risk-Prevent,主要目的是帮助在家自我管理心血管健康。

系统通过一套预定义的规则(医学指南),结合描述性和预测性评估,为用户提供关于心血管疾病风险的个性化建议。

这些推荐内容根据用户的健康状况和风险水平被分为四个维度:目标(针对性)、信息性、解释性和行动计划。

例子
假设一个用户,男性,50岁,有高血压和不良饮食习惯,不吸烟,但有家族心脏病史。

根据CVD-Risk-Prevent系统的评估,以下是可能的推荐:

  1. 针对性(目标)

    • 目标是减少心血管疾病的整体风险。
    • 建议定期进行血压检测,并与家庭医生讨论可能的药物调整来控制血压。
  2. 信息性

    • 提供关于高血压对心脏健康影响的信息,强调合理饮食对预防心脏疾病的重要性。
    • 提示:高血压和不健康饮食是心脏疾病的主要风险因素。
  3. 解释性

    • 解释为什么要降低盐分摄入:减少盐分摄入有助于降低血压,从而减少心脏病发作的风险。
    • 解释定期检查的重要性,如何帮助及时发现潜在的健康问题。
  4. 行动计划

    • 制定一个详细的健康饮食计划,包括低盐和高纤维食物。
    • 建议每周至少进行三次中等强度的体育活动,如快步走或游泳。
    • 安排每六个月一次的全面健康检查,包括血压和胆固醇水平测试。

通过这种多维度的推荐,CVD-Risk-Prevent系统旨在为用户提供全面的风险管理策略,不仅仅是通知他们现有的风险,而是提供具体的、可执行的建议来改善他们的心血管健康状况。

算法逻辑基于三种类型的规则:

  • 识别个别CV风险因素的规则
  • 对CVD风险进行描述性和预测性评估的规则
  • 创建多维推荐的规则,创建推荐的特点是也使用了大模型来获取推荐的解释性项目。

假设我们有一个使用这个系统的用户,名叫张先生,50岁,有高血压和高胆固醇的问题。

  1. 识别个别心血管风险因素的规则

    • 系统通过用户输入的医疗历史和最近的健康数据(如血压和胆固醇水平)来识别张先生的高血压和高胆固醇作为心血管风险因素。
  2. 对心血管疾病风险进行描述性和预测性评估的规则

    • 系统分析张先生的健康数据,并根据当前的医学研究和指南,预测他未来十年内患心血管疾病的概率。
    • 描述性评估可能指出,张先生的血压和胆固醇水平超过了正常范围,需要通过生活方式的调整和可能的药物治疗来控制。
  3. 创建多维推荐的规则

    • 基于识别的风险因素和评估结果,系统会生成包括健康建议和行动计划在内的推荐。
  4. 使用ChatGPT来获取推荐的解释性项目

    • 对于建议张先生减少盐分摄入以控制血压的推荐,ChatGPT可以生成解释性文本,说明减少盐分如何帮助降低血压和减少心脏疾病的风险。例如,ChatGPT可能会生成这样的文本:“减少盐分摄入能够帮助降低血液中的钠含量,从而降低血压。这对心脏健康非常重要,因为高血压会增加心脏病和中风的风险。”

通过这种方式,张先生不仅获得了针对他个人健康状况的具体建议,还能理解为什么这些建议对他有益,以及如何执行这些建议来改善他的心血管健康。

这种解释性的交流帮助增强了用户的参与度和执行推荐的意愿。

推荐算法的选择

推荐算法:协同过滤算法和基于知识的推荐算法。

协同过滤算法

假设我们有一组用户和他们对各种健康服务和产品的评分。其中包括血压监测器、健身课程和低钠饮食计划。

用户A:有高血压,给高血压相关产品和服务高评分。
用户B:同样有高血压,但还未对任何产品进行评分。

协同过滤算法会识别出用户A和用户B有相似的健康状况,因此可能会向用户B推荐用户A评分高的产品和服务。

这种方法的缺点是,如果用户B的具体情况有所不同(例如他可能对某些药物过敏),这种推荐可能就不那么相关或安全了。

基于知识的推荐算法

在基于知识的推荐系统中,不仅考虑用户的健康状况,还会综合官方医疗指南和专家的意见。

假设用户B的详细健康档案包括他的医疗历史、家族病史以及他对某些药物的不良反应。

用户B:具有高血压和对某些降压药物的过敏历史。

基于知识的系统将使用这些数据和心血管疾病预防的医疗指南来生成个性化推荐。

比如,系统可能会推荐无需用药的生活方式改变,如定期体育活动和特定的饮食计划,而不是用户A得到的可能基于药物治疗的推荐。

协同过滤算法:

  • 优点:能够发现用户间未明确表达的相似偏好。
  • 缺点:依赖于用户的评分数据,可能面临数据稀疏性和冷启动问题,推荐的个性化和准确性可能受限于可用数据的广度和深度。

基于知识的推荐算法:

  • 优点:通过结合专业知识和用户的具体健康数据,能提供更精准、安全的个性化建议。
  • 缺点:需要维护和更新庞大的知识库,实现复杂度和成本较高。

基于知识的推荐系统在需要高度个性化和精确度的医疗健康领域,尤其是在管理慢性疾病如心血管疾病时,提供了一种更为安全和可靠的推荐方法。

协同过滤则可能更适用于商品和服务推荐,其中用户偏好的多样性和动态性可以通过用户互动和评分被有效捕捉。

现代推荐系统缺乏推荐的可解释性以及改进推荐效果所需的开放世界知识。

LLM 因其大量文本语料库上预训练,被认为有望解决这些问题。

LLM拥有广泛的开放世界知识,能显著提升推荐的有效性,特别是在心脏病学领域。

经过对30个不同的ChatGPT生成的解释性内容的分析,可以得出ChatGPT在生成心血管疾病(CVD)风险因素的解释时表现出了正确性和一致性。

即使 LLM 有时候没有为不可修改的风险因素提供独立的解释,它仍能有效地使用这些风险因素来增强对列表中其他心血管(CV)风险因素的解释。

这样的解释方式在使用推荐算法生成解释性的上下文中被认为是可接受和充分的。

这说明ChatGPT在为用户提供有关他们特定健康状况的信息时,不仅能提供直接的解释,还能通过关联和增强相关风险因素的解释来增加解释的深度和广度,这对于用户理解和采纳健康建议是非常有帮助的。

选择疑问

选择的是基于知识的推荐系统,我有一个问题。

协同过滤算法会识别出用户A和用户B有相似的健康状况,因此可能会向用户B推荐用户A评分高的产品和服务。

协同过滤算法的缺点是,如果用户B的具体情况有所不同(例如他可能对某些药物过敏),这种推荐可能就不那么相关或安全了。

那为什么协同过滤能不能结合大模型,协同过滤不懂用户B对某些药物过敏,但大模型懂啊,为什么不结合俩者?

  • 协同过滤组件:分析用户群体中的购买和评价行为,识别出受欢迎的健康产品或服务。
  • 大模型组件:分析个别用户的查询内容、医疗记录和反馈,识别出特定的健康需求和潜在的风险因素,如药物过敏。
  • 集成推荐逻辑:系统首先使用协同过滤算法确定一组潜在的推荐选项,然后通过大型语言模型对这些选项进行审查,排除不适合特定用户的选项,并增强推荐解释的生成,使之更具个性化和适应性。

通过这种结合方式,推荐系统不仅能够利用大规模用户数据发现普遍的趋势和偏好,还能针对个别用户的特殊情况提供定制化的健康管理建议,大大提高了推荐的相关性和安全性。

这种方法尤其适合于医疗健康领域,其中正确理解和处理个人健康数据的重要性远超其他领域。

 

在开发用于支持在家自我管理心血管风险因素的推荐算法时,需要考虑它既适用于没有心血管风险因素的个体,也适用于一般健康的个体以及可能引发急性心血管事件、需要紧急医疗关注的现有心血管疾病个体。

通过分析健康推荐系统研究、个体水平上预防心血管疾病的有效策略问题,以及预防医生对心血管疾病预防进行咨询的过程,可以确定推荐内容的以下要求:

  • 有用性和安全性。

    推荐中使用的项目应在当前心血管疾病预防的临床指南中具体说明。

    支持在家自我管理的推荐应在非药物干预原则的框架内进行。

  • 完整性。

    推荐应包括所有心血管风险因素及其评估,以及当前心血管疾病预防临床指南中概述的预测性评估。

    同时,心血管风险因素集应包括心绞痛的症状,作为冠状动脉疾病的主要预测因子。

  • 准确性和个体关注。

    推荐项目必须正确无误。

    只有在确认了个体的心血管风险因素后,推荐文本才提供有关这些风险因素的信息。

    对于没有心血管风险因素的个体,推荐文本应提供支持其健康生活方式的一般信息。

  • 多维性。

    推荐文本应结合不同维度的项目,包括目标、管理个体心血管风险的方法以及解释为什么这样做有益。

  • 规划。

    行动计划是推荐中的关键组成部分。

    行动计划中的推荐项目将为用户提供有关如何自我管理心血管风险因素的步骤信息。

  • 及时性。

    推荐必须根据心血管疾病风险评估的紧迫性补充有关寻求医疗帮助的信息。

  • 可解释性。

    推荐项目不仅应提供信息,还应解释其对管理个人心血管风险的重要性。

  • 动机。

    推荐应支持个人迈出关心其心血管健康的第一步,并支持形成自我管理心血管风险因素的技能。

 
假设我们有一个名叫陈先生的患者,他是一位中年男性,近期被诊断出高血压和高胆固醇,医生建议他采取措施以减少心血管疾病(CVD)的风险。

健康指标管理

  • 数据输入:陈先生的最新健康检查数据,包括血压读数、胆固醇水平、体重和体育活动频率。
  • 推荐系统分析:系统根据这些数据,评估他的心血管健康状况,并识别出高血压和高胆固醇为主要的风险因素。

心血管风险因素

  • 风险识别:系统通过比对临床指南和陈先生的数据,确认这些风险因素,并将其与心血管事件的可能性联系起来。
  • 风险通报:系统告知陈先生,他的这些指标与增加心血管疾病风险相关。

目标设定

  • 长期目标:系统为陈先生设定主要目标,如将血压维持在正常范围内,并将胆固醇水平降低到安全阈值以下。
  • 短期目标:建议陈先生逐步改变饮食习惯,增加体育活动量。

实现目标的计划

  • 行动方案:系统为陈先生制定了一个详细的行动计划,包括每日至少30分钟的中等强度体育活动(如快步走),每周制定低盐低脂的饮食计划。
  • 监控和调整:推荐陈先生每月检测一次血压和胆固醇水平,以监控进展并根据需要调整计划。

推荐的多维性

  • 信息维度:提供关于为什么这些行动能帮助降低心血管风险的详细解释,比如解释运动如何帮助控制血压和减少心脏负担。
  • 动机维度:通过显示相似患者的成功案例来激励陈先生,展示通过类似改变获得显著健康效益的可能性。

这个多维推荐模型不仅为陈先生提供了具体的行动指导,还通过教育和动机增强了推荐的接受度和执行率。

这种方法在不包括具体的药物治疗建议的情况下,侧重于通过生活方式的改变来管理和减少心血管疾病的风险。

算法关键点:如何将心血管健康指标转换为多维推荐?

这个算法的关键特点和贡献是,它将一个数据结构——个人的CV健康指标X转换成另一种数据结构——多维推荐R。

在将心血管健康指标转换为多维推荐的过程中,我们可以分解为以下具体的子解法:

  1. 子解法1: 数据收集和预处理

    • 特征: 必须首先收集并标准化心血管健康指标,以确保输入数据的一致性和可比性。
    • 之所以使用数据收集和预处理子解法,是因为:有效的数据预处理可以确保后续分析的准确性和有效性。
    • 例子:收集患者的年龄、性别、体重、身高、血压、胆固醇等指标,并将这些数据转换为适合算法处理的格式。
  2. 子解法2: 风险评估和分类

    • 特征: 根据预处理后的数据,评估每个患者的心血管疾病风险因素。
    • 之所以使用风险评估和分类子解法,是因为:对风险因素的准确评估是为患者制定个性化推荐的基础。
    • 例子:使用医学模型或算法(如SCORE模型)来评估患者的心血管疾病风险,如高血压或高胆固醇等。
  3. 子解法3: 生成多维推荐

    • 特征: 基于风险评估的结果,结合患者的个人信息和预测模型,生成包含多个维度的健康管理建议。
    • 之所以使用生成多维推荐子解法,是因为:多维度的推荐可以更全面地满足患者的健康管理需求。
    • 例子:为高血压患者推荐改善饮食习惯、增加体育活动,并提供戒烟的建议。

这些子解法形成了一个逻辑链条,从数据的收集与预处理开始,到风险的评估与分类,最后生成个性化的多维推荐。

这个过程是顺序进行的,每个步骤的输出都是下一个步骤的输入,形成了一个线性的处理流程。

在这里插入图片描述
这幅图展示了用于预防心血管疾病(CVD)的推荐算法的框架。

图中描述了从用户的初始数据到最终生成个性化推荐的整个处理流程:

  1. 用户档案 X心血管风险因素模型 Z

    • 这些是算法的输入,用户档案可能包括年龄、性别、医疗历史等,而风险因素模型涵盖了可能影响心血管健康的各种因素。
  2. 识别用户心血管风险因素(Factor)

    • 算法分析用户数据和风险模型,识别出用户具体的心血管风险因素。
  3. 风险因素处理

    • 此阶段包括三个并行处理流程:
      • 估算累积心血管风险(C):根据识别的风险因素估算用户的总心血管风险。
      • 估算用户类别(Class):根据风险因素将用户分类,可能基于风险程度分不同级别。
      • 生成推荐(Generating of recommendation):这是基于以上两个评估的结果。
  4. 多维推荐生成

    • 生成的推荐分为多个部分:
      • 信息性内容(INF):提供关于心血管健康的基础信息。
      • 解释性内容(EXPL):解释推荐的理由,帮助用户理解为何要采取某些健康行动。
      • 战术目标(EsR):具体的健康改善目标。
      • 行动计划(Plan):步骤和计划,指导用户如何执行推荐。
      • 战略目标(EsG):更广泛的健康目标和预期结果。

这个框架清晰地展示了从数据输入到推荐输出的完整流程,强调了个性化健康管理的多维性和系统性。

有一位名叫张的患者,他的基本健康数据和心血管疾病风险因素如下:

  • 性别:男(X(1) = 1)
  • 年龄:55岁(X(2) = 55)
  • 体重:90公斤(X(4) = 90)
  • 身高:175厘米(X(3) = 175)
  • 总胆固醇:6 mmol/L(X(10) = 6)
  • 收缩压:150 mmHg(X(12) = 150)
  • 吸烟:是(X(15) = 1)
  • 身体活动:不足(X(14) = 1)
确定风险因素和类别

使用算法中定义的规则来评估张伟的风险因素(𝐹𝑎𝑐𝑡𝑜𝑟)和分类他的风险等级(𝐶𝑙𝑎𝑠𝑠):

  1. 风险因素评估(𝐹𝑎𝑐𝑡𝑜𝑟)

    • 总胆固醇 > 5 mmol/L(𝑓(7) = 1)
    • 收缩压 > 140/90 mmHg(𝑓(9) = 1)
    • 吸烟(𝑓(11) = 1)
    • 身体活动不足(𝑓(12) = 1)
  2. 风险类别(𝐶𝑙𝑎𝑠𝑠)

    • 可修改的生物因素(Class(3) = 1):因为总胆固醇和高血压
    • 可修改的行为因素(Class(2) = 1):因为吸烟和身体活动不足
生成多维推荐

基于张伟的风险因素和分类,生成包含战术目标(𝐸𝑠𝑅),信息性内容(𝐼𝑛𝑓),解释性内容(𝐸𝑥𝑝𝑙),以及行动计划(𝑃𝑙𝑎𝑛)的推荐:

  • 战术目标(𝐸𝑠𝑅)

    • 降低胆固醇:考虑调整饮食和可能的药物治疗。
    • 控制血压:定期监测血压,调整生活方式,并考虑使用降压药。
  • 信息性内容(𝐼𝑛𝑓)

    • 解释高胆固醇和高血压对心血管健康的负面影响。
  • 解释性内容(𝐸𝑥𝑝𝑙)

    • 详细说明为什么停止吸烟和增加身体活动可以显著改善心血管健康。
  • 行动计划(𝑃𝑙𝑎𝑛)

    • 设定具体的饮食计划,推荐减少饱和脂肪和盐的摄入。
    • 建议每周至少进行150分钟的中等强度运动。

通过这种方式,CVD-Risk-Prevent算法为张伟提供了一套全面的、针对个人心血管风险因素定制的健康管理建议,旨在帮助他改善生活方式,降低心血管疾病的风险。

这些推荐既包含了具体的行动步骤,也提供了必要的背景知识和解释,以增加遵循性和效果。

CVD-Risk-Prevent算法是一个基于知识的推荐系统,专门设计用于支持成年人在家中自我管理心血管疾病(CVD)风险因素。该算法可以拆解为几个具体的子解法,每个子解法都是基于特定的特征和需要。

CVD-Risk-Prevent 拆解

  1. 子解法1: 风险因素识别

    • 特征: 必须准确识别和分类患者的CVD风险因素。
    • 之所以使用风险因素识别子解法,是因为: 确定患者的具体风险因素是为他们提供个性化健康建议的基础。
    • 例子: 使用患者的健康数据(如血压、胆固醇水平、体重等)来识别其是否存在高血压、高胆固醇等风险因素。
  2. 子解法2: 风险评估模型应用

    • 特征: 应用医学评估模型来量化患者的CVD风险。
    • 之所以使用风险评估模型应用子解法,是因为: 量化的风险评估能够更精确地指导推荐的生成。
    • 例子: 使用SCORE模型计算10年心血管疾病的风险百分比,用于评估总体风险水平。
  3. 子解法3: 生成个性化推荐

    • 特征: 根据风险评估生成目标导向和行动计划。
    • 之所以使用生成个性化推荐子解法,是因为: 目标导向的推荐可以具体指导患者如何管理他们的风险因素。
    • 例子: 对于被识别为高胆固醇的患者,推荐调整饮食习惯和进行定期血脂检测。
  4. 子解法4: 解释性内容生成

    • 特征: 提供详细的健康建议解释,以提高患者的理解和遵循性。
    • 之所以使用解释性内容生成子解法,是因为: 明确解释健康建议的好处和必要性可以增强患者的动机。
    • 例子: 使用ChatGPT生成的解释性内容来详细说明为什么戒烟对心血管健康至关重要,包括生理和医学角度的解释。

这些子解法形成了一个逻辑链条:首先识别和评估风险,然后基于这些评估生成个性化的健康管理建议,并最后通过详细解释来支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/768427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

antfu/ni 在 Windows 下的安装

问题 全局安装 ni 之后,第一次使用会有这个问题 解决 在 powershell 中输入 Remove-Item Alias:ni -Force -ErrorAction Ignore之后再次运行 ni Windows 11 下的 Powershell 环境配置 可以参考 https://github.com/antfu-collective/ni?tabreadme-ov-file#how …

【操作系统】进程管理——调度基础(个人笔记)

学习日期:2024.7.3 内容摘要:调度的概念、层次,进程调度的时机,调度器和闲逛进程,调度算法的评价指标 调度的基本概念 有一堆任务需要处理,但由于资源有限,有的事情不能同时处理,这…

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…

什么牌子的充电宝最好耐用?多款热门无线磁吸充电宝推荐

在现代生活中,手机、平板等电子设备已成为我们日常工作的必需品,而充电宝则是这些设备的续航神器!无论是长途旅行、外出办公,还是日常通勤,一个耐用且高效的充电宝都是必不可少的选择。然而,市场上充电宝品…

如何选择适合自己的虚拟化技术?

虚拟化技术已成为现代数据中心和云计算环境的核心组成部分。本文将帮助您了解如何选择适合自己需求的虚拟化技术,以实现更高的效率、资源利用率和灵活性。 理解虚拟化技术 首先,让我们了解虚拟化技术的基本概念。虚拟化允许将一个物理服务器划分为多个虚…

探讨命令模式及其应用

目录 命令模式命令模式结构命令模式适用场景命令模式优缺点练手题目题目描述输入描述输出描述题解 命令模式 命令模式是一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其…

玩玩快速冥(LeetCode50题与70题以及联系斐波那契)

一.算法快速幂 今天刷到两个题,比较有意思,还是记录一下. 先来讲讲50题. LeetCode50(Pow(x,n)) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 这道题一看很平常啊,不就一直乘嘛,循环走一次就够了.但是很抱歉,单纯的想…

ArcTs布局入门04——相对布局 媒体查询

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧 扫描下面的二维码关注公众号。 本文将探讨相对布局与媒体查询,为啥把他们放到一起呢?主要是因为相对布局在响应式的场景下做得不太好,一般情况下和媒体查询(不同尺…

移动智能终端数据安全管理方案

随着信息技术的飞速发展,移动设备已成为企业日常运营不可或缺的工具。特别是随着智能手机和平板电脑等移动设备的普及,这些设备存储了大量的个人和敏感数据,如银行信息、电子邮件等。员工通过智能手机和平板电脑访问企业资源,提高…

zed_ros2_wapper colcon 报错

问题一: CMake Error at CMakeLists.txt:129 (find_package): By not providing “Findnmea_msgs.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “nmea_msgs”, but CMake did not find one. Co…

jdk17卸载后换jdk1.8遇到的问题

过程: 1、找到jdk17所在文件夹,将文件夹进行删除。(问题就源于此,因为没删干净) 2、正常下载jdk1.8,按照网上步骤配置环境变量,这里我参考的文章是: http://t.csdnimg.cn/Svblk …

乘用车副水箱浮球式液位计传感器

浮球式液位计概述 浮球式液位计是一种利用浮球在液体中浮动的原理来测量液位的设备,广泛应用于各种工业自动化控制系统中,如石油化工、水处理、食品饮料等行业。它通过浮球的上下运动来测量液位的高低,具有结构简单、安装方便、测量范围广、…

[Leetcode 136][Easy]-只出现一次的数字

目录 题目描述 具体思路 题目描述 原题链接 具体思路 ①首先看到数组中重复的数字,想到快慢指针,但是数组的元素是乱序的不好求。因此先对数组排序。使用了STL库的sort函数,时间复杂度O(nlogn)不符合题目要求,空间复杂度O(1)。…

大陆ARS548使用记录

一、Windows连接上位机 雷达是在深圳路达买的,商家给的资料中首先让配置网口,但我在使用过程中一直出现无法连接上位机的情况。接下来说说我的见解和理解。 1.1遇到的问题 按要求配置好端口后上位机无连接不到雷达,但wireshark可以正常抓到数…

ESP32-C3模组上跑通MQTT(6)—— tcp例程(1)

接前一篇文章:ESP32-C3模组上跑通MQTT(5) 《ESP32-C3 物联网工程开发实战》 一分钟了解MQTT协议 ESP32 MQTT API指南-CSDN博客 ESP-IDF MQTT 示例入门_mqtt outbox-CSDN博客 ESP32用自签CA进行MQTT的TLS双向认证通信_esp32 mqtt ssl-CSDN博客 特此致谢! 本回开始正式讲…

上海站圆满结束!MongoDB Developer Day深圳站,周六见!

在过去两个周六的北京和上海 我们见证了两站热情高涨的 MongoDB Developer Day! 近200位参会开发者相聚专业盛会 经过全天的动手实操和主题研讨会 MongoDB技能已是Next Level! 最后一站Developer Day即将启程 期待本周六与各位在深圳相见&#xff0…

线程池666666

1. 作用 线程池内部维护了多个工作线程,每个工作线程都会去任务队列中拿取任务并执行,当执行完一个任务后不是马上销毁,而是继续保留执行其它任务。显然,线程池提高了多线程的复用率,减少了创建和销毁线程的时间。 2…

创建kset

1、kset介绍 2、相关结构体和api介绍 2.1 struct kset 2.2 kset_create_and_add kset_create_and_addkset_createkset_registerkobject_add_internalkobject_add_internal2.3 kset_unregister kset_unregisterkobject_delkobject_put3、实验操作 #include<linux/module.…

代码随想录第42天|动态规划

198.打家劫舍 参考 dp[j] 表示偷盗的总金额, j 表示前 j 间房(包括j)的总偷盗金额初始化: dp[0] 一定要偷, dp[1] 则取房间0,1的最大值遍历顺序: 从小到大 class Solution { public:int rob(vector<int>& nums) {if (nums.size() < 2) {return nums[0];}vector&…

[译]Reactjs性能篇

英文有限&#xff0c;技术一般&#xff0c;海涵海涵&#xff0c;由于不是翻译出身&#xff0c;所以存在大量的瞎胡乱翻译的情况&#xff0c;信不过我的&#xff0c;请看原文&#xff5e;&#xff5e; 原文地址&#xff1a;https://facebook.github.io/react/docs/advanced-per…