IPC通信中间件综述

IPC通信中间件综述

    • DBus(Desktop Bus)
    • FDBus
    • DDS(Data Distribution Service)
    • Fast DDS(Fast Data Distribution Service)
    • OpenDDS(Open Data Distribution Service)
    • Iceoryx
    • CyberRT
    • ZeroMQ
    • ROS 2(Robot Operating System 2)
    • Apex.OS

中间件种类繁多,包括:Web中间件、数据库中间件、消息中间件、安全中间件、事务中间件、应用程序服务器中间件、分布式计算中间件等。
在智能汽车行业中,有效的IPC(进程间通信)中间件对于实现各种功能模块之间的高效通信至关重要。以下是几种常用的IPC通信中间件(消息中间件),以及它们的优缺点和适用场景的详细总结:

DBus(Desktop Bus)

https://blog.csdn.net/f110300641/article/details/106823611

DBus(Desktop Bus)是一个进程间通信(IPC)系统,最初是为Linux桌面环境而设计的,但现在已经成为许多Unix-like系统的标准组件。DBus提供了一种简单的机制,允许不同进程之间通过消息传递进行通信,以实现各种功能的协作和交互。
特点:

  1. 消息传递机制: DBus基于消息传递的方式进行通信,进程通过发送消息来进行信息交换和协作。
  2. 异步通信: DBus支持异步通信模式,可以在消息发送之后立即继续执行其他任务,而不需要等待对方进程的响应。
  3. 对象模型: DBus提供了一种基于对象的通信模型,允许进程通过远程调用(RPC)的方式调用其他进程提供的服务。
  4. 安全性: DBus提供了一些安全机制,如权限控制和认证机制,以确保通信的安全性和可靠性。
  5. 跨平台支持: 虽然最初是为Linux桌面环境设计的,但DBus现在已经被移植到了许多其他Unix-like系统上,并且可以跨平台使用。
    DBus的组件:
  6. DBus Daemon(dbus-daemon): DBus守护进程,负责管理消息的传递和处理。所有进程都通过DBus Daemon来发送和接收消息。
  7. DBus Library: 提供了DBus的API接口,允许应用程序使用DBus进行通信。
  8. DBus Object Model: 定义了DBus的对象模型,包括接口、对象和方法等概念,用于描述DBus上运行的服务和对象之间的关系。
  9. DBus Message Bus: 提供了一种通用的消息总线,允许多个进程通过DBus进行通信。
    DBus的优点:
  • 简单易用:DBus提供了简洁的API接口,易于使用和理解。
  • 异步通信:支持异步消息传递,提高了系统的响应速度和性能。
  • 跨平台支持:可以在多种Unix-like系统上运行,并且可以跨平台使用。
  • 安全可靠:提供了一些安全机制,保障通信的安全性和可靠性。
    DBus的缺点:
  • 性能:与一些其他IPC机制相比,DBus的性能可能较低。
  • 依赖性:DBus需要DBus Daemon来运行,可能会增加系统的复杂性和资源消耗。
    总的来说,DBus是一个简单易用、跨平台支持的IPC系统,适用于各种Unix-like系统上的进程间通信需求,特别适合于Linux桌面环境和其他GUI应用程序的通信。

FDBus

FDBus是一种高性能的IPC(进程间通信)中间件,旨在提供快速、可靠的通信机制,适用于实时系统和高性能计算等领域。以下是关于FDBus中间件的介绍:
特点:

  1. 高性能: FDBus注重性能优化,提供了低延迟和高吞吐量的通信机制,适用于对通信性能有较高要求的应用场景。
  2. 实时性: FDBus设计目标之一是实时性,确保通信过程中的响应速度和可靠性,适用于需要实时数据交换的系统。
  3. 可靠性: FDBus提供了可靠的通信机制,保证数据传输的完整性和可靠性,适用于对数据完整性要求较高的应用场景。
  4. 轻量级: 尽管追求高性能,但FDBus仍然保持了轻量级的特性,尽量减少资源消耗,适用于资源受限的环境。
  5. 多种通信模式: FDBus支持多种通信模式,如点对点通信、发布/订阅模式等,灵活适应不同的应用场景。
  6. 跨平台支持: FDBus可以在多种操作系统上运行,包括Linux、Windows等,具有一定的跨平台兼容性。
    组件和架构:
  7. FDBus Core: FDBus的核心组件,负责实现消息传递、通信管理和数据处理等功能。
  8. FDBus API: 提供了一套API接口,允许应用程序使用FDBus进行通信和数据交换。
  9. FDBus Daemon: FDBus的守护进程,负责管理FDBus的运行和资源分配等任务。
  10. FDBus Object Model: 定义了FDBus的对象模型,包括接口、对象和方法等概念,用于描述FDBus上运行的服务和对象之间的关系。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的应用场景。
  • 可靠性和安全性:提供可靠的通信机制,保障数据传输的完整性和安全性。
  • 轻量级和跨平台支持:在追求高性能的同时,保持了轻量级特性和跨平台兼容性。
    缺点:
  • 学习曲线较陡:对于初学者来说,可能需要一定时间来理解和使用FDBus的API接口和功能。
    总的来说,FDBus是一种性能优越、实时可靠的IPC中间件,适用于对通信性能和实时性要求较高的实时系统和高性能计算等领域。

DDS(Data Distribution Service)

DDS(Data Distribution Service)是一种面向实时系统和分布式应用程序的高性能数据分发服务,它提供了一种可靠的消息传递机制,用于在多个节点之间进行数据交换和通信。DDS旨在解决复杂的实时数据分发和通信需求,适用于各种领域,如航空航天、汽车、工业控制等。以下是关于DDS中间件的介绍:
特点:

  1. 高性能: DDS提供了低延迟和高吞吐量的数据传输机制,适用于对通信性能要求较高的实时系统和分布式应用程序。
  2. 实时性: DDS专注于实时性能,确保数据在系统内的快速传播,适用于对实时性要求较高的应用场景。
  3. 可靠性: DDS提供了可靠的数据传输机制,支持数据的完整性和顺序性保证,适用于对数据完整性有较高要求的应用场景。
  4. 灵活性: DDS支持灵活的配置和扩展,可以根据具体的应用需求进行定制和优化。
  5. 跨平台支持: DDS可以在多种操作系统上运行,包括Linux、Windows、QNX等,具有较好的跨平台兼容性。
  6. 安全性: DDS提供了一些安全机制,如访问控制、认证等,保障通信的安全性和可靠性。
    组件和架构:
  7. DDS Core: DDS的核心组件,负责实现DDS协议规范、数据分发和通信管理等功能。
  8. DDS API: 提供了一套API接口,允许应用程序使用DDS进行数据分发和通信。
  9. DDS Discovery: 负责发现和管理DDS网络中的各个节点和数据源,实现动态的网络拓扑管理。
  10. DDS QoS(Quality of Service): 提供了丰富的QoS配置选项,允许用户根据具体需求对通信性能进行调优。
  11. DDS Security: 提供了安全机制,如访问控制、数据加密等,确保通信的安全性和可靠性。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。
  • 可靠性和安全性:提供可靠的数据传输机制和安全机制,保障数据的完整性和安全性。
  • 跨平台支持:在多种操作系统上运行,并具有较好的跨平台兼容性。
  • 灵活性和可扩展性:支持灵活的配置和扩展,可以根据具体应用需求进行定制和优化。
    缺点:
  • 学习曲线较陡:对于初学者来说,可能需要一定时间来理解和使用DDS的API接口和功能。
    总的来说,DDS是一种性能优越、实时可靠的数据分发服务,适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。

Fast DDS(Fast Data Distribution Service)

Fast DDS(Fast Data Distribution Service)是一种开源的、高性能的DDS(Data Distribution Service)实现,由eProsima开发。它旨在提供快速、可靠的数据分发服务,适用于实时系统和分布式应用程序。以下是关于Fast DDS中间件的介绍:
特点:

  1. 高性能: Fast DDS采用了一系列优化策略,如零拷贝、内存池管理等,以提供低延迟和高吞吐量的数据传输。
  2. 实时性: Fast DDS专注于实时性能,确保数据在系统内的快速传播,适用于对实时性要求较高的应用场景。
  3. 可靠性: Fast DDS提供了可靠的数据传输机制,支持数据的完整性和顺序性保证,适用于对数据完整性有较高要求的应用场景。
  4. 灵活性: Fast DDS支持灵活的配置和扩展,可以根据具体的应用需求进行定制和优化。
  5. 跨平台支持: Fast DDS可以在多种操作系统上运行,包括Linux、Windows等,具有较好的跨平台兼容性。
  6. 安全性: Fast DDS提供了一些安全机制,如访问控制、认证等,保障通信的安全性和可靠性。
    组件和架构:
  7. DDS Core: Fast DDS的核心组件,负责实现DDS协议规范、数据分发和通信管理等功能。
  8. DDS API: 提供了一套API接口,允许应用程序使用Fast DDS进行数据分发和通信。
  9. DDS Discovery: 负责发现和管理DDS网络中的各个节点和数据源,实现动态的网络拓扑管理。
  10. DDS QoS(Quality of Service): 提供了丰富的QoS配置选项,允许用户根据具体需求对通信性能进行调优。
  11. DDS Security: 提供了安全机制,如访问控制、数据加密等,确保通信的安全性和可靠性。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。
  • 可靠性和安全性:提供可靠的数据传输机制和安全机制,保障数据的完整性和安全性。
  • 跨平台支持:在多种操作系统上运行,并具有较好的跨平台兼容性。
  • 灵活性和可扩展性:支持灵活的配置和扩展,可以根据具体应用需求进行定制和优化。
    缺点:
  • 学习曲线较陡:对于初学者来说,可能需要一定时间来理解和使用Fast DDS的API接口和功能。
    总的来说,Fast DDS是一种性能优越、实时可靠的DDS实现,适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。

OpenDDS(Open Data Distribution Service)

OpenDDS(Open Data Distribution Service)是一个开源的、面向实时系统的DDS(Data Distribution Service)实现,它提供了高性能和可扩展性的数据分发服务。以下是关于OpenDDS的介绍:
特点:

  1. 高性能: OpenDDS注重性能优化,提供了低延迟和高吞吐量的数据传输机制,适用于对通信性能有较高要求的实时系统。
  2. 可扩展性: OpenDDS提供了灵活的配置和扩展机制,可以根据具体的应用需求进行定制和优化。
  3. 实时性: OpenDDS专注于实时性能,确保数据在系统内的快速传播,适用于对实时性要求较高的应用场景。
  4. 可靠性: OpenDDS提供了可靠的数据传输机制,支持数据的完整性和顺序性保证,适用于对数据完整性有较高要求的应用场景。
  5. 跨平台支持: OpenDDS可以在多种操作系统上运行,包括Linux、Windows等,具有较好的跨平台兼容性。
    组件和架构:
  6. OpenDDS Core: OpenDDS的核心组件,负责实现DDS协议规范、数据分发和通信管理等功能。
  7. OpenDDS API: 提供了一套API接口,允许应用程序使用OpenDDS进行数据分发和通信。
  8. OpenDDS Discovery: 负责发现和管理OpenDDS网络中的各个节点和数据源,实现动态的网络拓扑管理。
  9. OpenDDS QoS(Quality of Service): 提供了丰富的QoS配置选项,允许用户根据具体需求对通信性能进行调优。
  10. OpenDDS Security: 提供了安全机制,如访问控制、数据加密等,确保通信的安全性和可靠性。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。
  • 可扩展性:提供灵活的配置和扩展机制,可以根据具体的应用需求进行定制和优化。
  • 跨平台支持:在多种操作系统上运行,并具有较好的跨平台兼容性。
  • 可靠性:提供可靠的数据传输机制和安全机制,保障数据的完整性和安全性。
    缺点:
  • 学习曲线较陡:对于初学者来说,可能需要一定时间来理解和使用OpenDDS的API接口和功能。
    总的来说,OpenDDS是一种性能优越、实时可靠的DDS实现,适用于对通信性能和实时性要求较高的实时系统和分布式应用程序。

Iceoryx

iceoryx是一个开源的跨平台IPC(进程间通信)中间件,旨在支持实时和嵌入式系统中的高性能通信需求。它专注于提供低延迟、高吞吐量的通信解决方案,适用于汽车、机器人、航空航天等领域。以下是iceoryx中间件的介绍:
特点:

  1. 高性能: iceoryx注重性能优化,提供了低延迟和高吞吐量的通信机制,适用于对通信性能有较高要求的实时系统。
  2. 实时性: iceoryx专注于实时性能,确保数据在系统内的快速传播,适用于对实时性要求较高的应用场景。
  3. 轻量级: iceoryx保持了轻量级的特性,尽量减少资源消耗,适用于资源受限的嵌入式系统。
  4. 可扩展性: iceoryx提供了灵活的配置和扩展机制,可以根据具体的应用需求进行定制和优化。
  5. 跨平台支持: iceoryx可以在多种操作系统上运行,包括Linux、QNX等,具有较好的跨平台兼容性。
    组件和架构:
  6. iceoryx Core: iceoryx的核心组件,负责实现消息传递、通信管理和数据处理等功能。
  7. iceoryx API: 提供了一套API接口,允许应用程序使用iceoryx进行数据传输和通信。
  8. iceoryx Discovery: 负责发现和管理iceoryx网络中的各个节点和数据源,实现动态的网络拓扑管理。
  9. iceoryx QoS(Quality of Service): 提供了丰富的QoS配置选项,允许用户根据具体需求对通信性能进行调优。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的实时系统和嵌入式系统。
  • 轻量级:保持了轻量级的特性,尽量减少资源消耗。
  • 跨平台支持:在多种操作系统上运行,并具有较好的跨平台兼容性。
    缺点:
  • 学习曲线较陡:对于初学者来说,可能需要一定时间来理解和使用iceoryx的API接口和功能。
    总的来说,iceoryx是一种高性能、实时可靠的IPC中间件,适用于对通信性能和实时性要求较高的实时系统和嵌入式系统,特别适合于汽车、机器人等领域。

CyberRT

CyberRT是一个面向智能汽车和自动驾驶系统的IPC(进程间通信)中间件,由阿里云提供支持,旨在解决汽车行业对于高性能、实时性和安全性的通信需求。以下是关于CyberRT的介绍:
特点:

  1. 高性能: CyberRT提供了高性能的通信机制,具有低延迟和高吞吐量的特点,适用于对通信性能要求较高的汽车系统。
  2. 实时性: CyberRT专注于实时性能,确保数据在系统内的快速传播,满足实时感知和决策等需求。
  3. 安全性: CyberRT重视数据安全性,提供了一系列的安全机制,如加密、认证等,确保通信的安全和可靠。
  4. 适用于汽车领域: CyberRT针对智能汽车和自动驾驶系统的需求进行了优化,包括支持车辆间通信、车辆与基础设施通信等场景。
  5. 多种通信模式: CyberRT支持多种通信模式,如发布/订阅、请求/响应等,适用于不同的数据交换场景。
    组件和架构:
  6. CyberRT Core: CyberRT的核心组件,负责实现通信协议、数据传输和通信管理等功能。
  7. CyberRT API: 提供了一套API接口,允许应用程序使用CyberRT进行数据交换和通信。
  8. CyberRT Security: 提供了安全机制,如数据加密、访问控制等,保障通信的安全性和可靠性。
  9. CyberRT Discovery: 负责发现和管理CyberRT网络中的各个节点和数据源,实现动态的网络拓扑管理。
    优点:
  • 高性能和实时性:适用于对通信性能和实时性要求较高的智能汽车和自动驾驶系统。
  • 安全性:重视数据安全性,提供了一系列的安全机制,确保通信的安全和可靠。
  • 专注于汽车领域:针对智能汽车和自动驾驶系统的需求进行了优化,满足汽车行业的严苛要求。
  • 多种通信模式:支持多种通信模式,适用于不同的数据交换场景。
    缺点:
  • 可能在某些非汽车领域的场景下不太适用,由于CyberRT专注于汽车行业的通信需求,可能在其他领域的通信需求上表现不佳。
    总的来说,CyberRT是一种性能优越、实时可靠的IPC中间件,适用于智能汽车和自动驾驶系统等对通信性能、实时性和安全性要求较高的应用场景。

ZeroMQ

ZeroMQ(ØMQ)是一个开源的、轻量级的消息传递库,它提供了简单而灵活的通信机制,适用于构建分布式和并发系统。以下是关于ZeroMQ的介绍:
特点:

  1. 轻量级: ZeroMQ是一个轻量级的消息传递库,提供了简单而灵活的通信机制,不会增加系统的复杂性和资源消耗。
  2. 简单易用: ZeroMQ提供了简洁的API接口,易于使用和理解,不需要复杂的配置和设置。
  3. 灵活性: ZeroMQ支持多种通信模式,如请求/响应、发布/订阅、推送/接收等,可以根据具体的应用需求选择合适的通信模式。
  4. 跨平台支持: ZeroMQ可以在多种操作系统上运行,包括Linux、Windows、macOS等,具有较好的跨平台兼容性。
  5. 多语言支持: ZeroMQ支持多种编程语言,如C、C++、Python、Java等,可以在不同语言之间进行通信和数据交换。
    组件和架构:
  6. ZeroMQ Core: ZeroMQ的核心组件,负责实现消息传递、通信管理和数据处理等功能。
  7. ZeroMQ API: 提供了一套API接口,允许应用程序使用ZeroMQ进行消息传递和通信。
    优点:
  • 轻量级和简单易用:ZeroMQ是一个轻量级的消息传递库,提供了简单而灵活的通信机制,易于使用和理解。
  • 灵活性:支持多种通信模式,可以根据具体的应用需求选择合适的通信模式。
  • 跨平台支持:可以在多种操作系统上运行,并且具有较好的跨平台兼容性。
  • 多语言支持:支持多种编程语言,可以在不同语言之间进行通信和数据交换。
    缺点:
  • 对于某些特定应用场景可能不够适用:由于ZeroMQ是一种通用的消息传递库,可能在某些特定的应用场景下性能表现不佳。
    总的来说,ZeroMQ是一种简单、灵活、跨平台的消息传递库,适用于构建分布式和并发系统,特别适合对通信需求较为简单的应用场景。

ROS 2(Robot Operating System 2)

ROS 2(Robot Operating System 2)是一种用于构建机器人系统的开源中间件,它提供了一系列工具和库,用于帮助开发者构建、部署和管理机器人系统。ROS 2 是 ROS(Robot Operating System)的下一代版本,相比于 ROS,ROS 2 具有更多的功能和性能优化,特别是在可靠性、实时性和跨平台支持方面有了显著改进。以下是关于ROS 2中间件的介绍:
特点:

  1. 实时性: ROS 2 在设计上考虑了实时性需求,并提供了实时性能更好的选项,适用于对实时性要求较高的机器人应用场景。
  2. 可靠性: ROS 2 改进了通信机制,提供了更可靠的通信机制,支持数据的可靠性保证,适用于对数据传输有严格要求的应用场景。
  3. 跨平台支持: ROS 2 支持多种操作系统,包括Linux、Windows、macOS等,具有良好的跨平台兼容性,方便在不同平台上开发和部署机器人系统。
  4. 模块化设计: ROS 2 的设计采用了模块化的架构,允许开发者根据具体需求选择合适的模块,灵活性更强。
  5. 多语言支持: ROS 2 支持多种编程语言,包括C++、Python等,方便开发者使用熟悉的编程语言进行开发。
  6. 工具和库支持: ROS 2 提供了丰富的工具和库,用于帮助开发者构建、部署和管理机器人系统,包括通信库、数据处理库等。
    组件和架构:
  7. ROS 2 Core: ROS 2 的核心组件,包括通信层、消息传递机制、节点管理等功能。
  8. ROS 2 API: 提供了一套API接口,允许开发者使用ROS 2进行机器人系统的开发和编程。
  9. ROS 2 Packages: 包括各种功能包,如导航、感知、控制等,提供了丰富的功能和工具,方便开发者构建复杂的机器人系统。
    优点:
  • 实时性和可靠性:适用于对实时性和可靠性要求较高的机器人应用场景。
  • 跨平台支持:支持多种操作系统,具有良好的跨平台兼容性。
  • 模块化设计:允许开发者根据具体需求选择合适的模块,灵活性更强。
  • 多语言支持:支持多种编程语言,方便开发者使用熟悉的编程语言进行开发。
    缺点:
  • 学习曲线较陡:对于初学者来说,ROS 2 的学习曲线可能较陡,需要一定的时间和精力来掌握其相关技术和工具。
    总的来说,ROS 2 是一种功能强大、性能优越的机器人系统开发中间件,适用于构建各种类型的机器人系统,包括移动机器人、工业机器人、服务机器人等。

Apex.OS

Apex.OS 是一种开源的、面向自动驾驶系统的软件平台,旨在提供一种可靠、实时的运行环境,以支持自动驾驶系统的开发和部署。以下是关于 Apex.OS 中间件的介绍:
特点:

  1. 实时性: Apex.OS 专注于提供实时性能较好的运行环境,以满足自动驾驶系统对于实时性的严格要求。
  2. 可靠性: Apex.OS 设计了一套可靠的运行环境,包括通信机制、数据处理、错误处理等,以确保系统的可靠性和稳定性。
  3. 安全性: Apex.OS 注重系统的安全性,提供了一系列的安全机制,如数据加密、访问控制等,保障系统的安全性和可靠性。
  4. 模块化设计: Apex.OS 的设计采用了模块化的架构,允许开发者根据具体需求选择合适的模块,灵活性更强。
  5. 跨平台支持: Apex.OS 支持多种操作系统,包括 Linux、QNX 等,具有良好的跨平台兼容性,方便在不同平台上开发和部署自动驾驶系统。
    组件和架构:
  6. Apex.OS Core: Apex.OS 的核心组件,负责实现运行环境、通信机制、数据处理等功能。
  7. Apex.OS API: 提供了一套API接口,允许开发者使用 Apex.OS 进行自动驾驶系统的开发和编程。
  8. Apex.OS Modules: 包括各种功能模块,如感知、决策、控制等,提供了丰富的功能和工具,方便开发者构建复杂的自动驾驶系统。
    优点:
  • 实时性和可靠性:适用于对实时性和可靠性要求较高的自动驾驶系统。
  • 安全性:提供了一系列的安全机制,保障系统的安全性和可靠性。
  • 模块化设计:允许开发者根据具体需求选择合适的模块,灵活性更强。
  • 跨平台支持:支持多种操作系统,具有良好的跨平台兼容性。
    缺点:
  • 学习曲线较陡:对于初学者来说,Apex.OS 的学习曲线可能较陡,需要一定的时间和精力来掌握其相关技术和工具。
    总的来说,Apex.OS 是一种功能强大、实时性能较好的自动驾驶系统开发中间件,适用于构建各种类型的自动驾驶系统,包括自动驾驶汽车、无人机等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亲测-原生android 跳转到flutter页面

当前状态: 原生android 和flutter都能跑通 android studio 版本2023.3.1 解决方式 1.新建flutter项目 点击new flutter 点next 点project type 选module 2(如果快速的话,此处将 flutter的lib和assets考过来)也可以后面在搞 且将pubspec.yaml …

3W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP03AL系列

TP03AL系列产品具有交直流两用、输入电压范围宽、高可靠性、低功耗、安全隔离等优点。广泛适用于工控和电力仪器仪表、智能家居等对体积要求苛刻、并对EMC 要求不高的场合,如果需要应用于电磁兼容恶劣的环境下必须添加EMC 外围电路。

栈结构(详解)

1.栈的概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&am…

java super关键字

在Java中,super是一个关键字,用于引用父类的成员(字段、方法、构造方法)。主要有两种用法: 1. 调用父类的构造方法:在子类的构造方法中,使用super()调用父类的构造方法。如果子类没有显式地调用…

立聪堂助听器29周年暨第九届助听使者活动圆满落幕

5月10日对于立聪堂来说是个特别的日子,这家专注于听力健康领域的公司迎来了29周年。同时,立聪堂第九届助听使者代表及其家人也受邀参观立聪堂南京总部,共庆29周年。 易被忽视的老人听力健康 大数据显示,我国65岁以上老人&#x…

SQLZOO:The JOIN operation

数据表:game-gaol-eteam game idmdatestadiumteam1team210018 June 2012National Stadium, WarsawPOLGRE10028 June 2012Stadion Miejski (Wroclaw)RUSCZE100312 June 2012Stadion Miejski (Wroclaw)GRECZE100412 June 2012National Stadium, WarsawPOLRUS... goal …

【重装系统】U盘制作软件——Rufus

Rufus 是一款格式化和创建 USB 启动盘的辅助工具。 本软件适用于以下场景: 需要将可引导 ISO (Windows、Linux、UEFI 等) 刻录到 USB 安装媒介的情况 需要处理未安装操作系统的设备的情况 需要在 DOS 环境下刷写 BIOS 或其他固件的情况 需要运行低级工具的情况 官…

WebSocket建立网络连接——小案例

WebSocket是一种实现全双工通信的网络技术标准,它允许在用户的浏览器和服务器之间进行持久的、双向的通信。以下是对WebSocket的具体介绍: 实时性:与传统HTTP请求相比,WebSocket提供了更高效的实时数据交换方式。一旦建立连接&am…

数据可视化(九):Pandas北京租房数据分析——房源特征绘图、箱线图、动态可视化等高级操作

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

【Golang】基于 excelize 的 Excel 工具包

目录 1. 安装excelize库2. Excel工具代码2.1 初始化Excel对象2.2. 常用操作2.2.1 设置窗格冻结2.2.2 设置工作表名称2.2.3 创建工作表2.2.4 设置单元格值2.2.5 设置单元格样式2.2.6 合并单元格2.2.7 设置行高和列宽 3.使用示例4.完整代码5.总结 在日常的开发中,我们…

操作抖音小店亏钱?是哪方面导致的?赶紧自查!

大家好,我是电商小V 我也经常去浏览网上的一些帖子,一些帖子就是说开抖音小店运营一年多了不出单,不转化,还亏钱,做不起来,很多人来问我,做抖音小店是不是不能赚钱? 关于这个问题&am…

04、 .java程序用 editplus 工具打开的过程及在 editplus 工具中配置 java/javac 命令的过程

EditPlus 工具的使用: 1、安装 editplus 工具的过程:其一、安装包地址:其二、安装步骤: 2、使用 editplus 工具打开 .java 程序的过程:其一、修改默认打开 .java 的工具:其二、效果展示: 3、在 …

安全测试工具BurpSuite安装和使用

1.安装 下载地址:https://pan.baidu.com/s/1YJbZGAfVKLsQmNeZYZXEeQ 提取码: yyds 打开cmd,运行以下指令,打开keygen界面: java -jar "C:\soft\BurpSuite v2.1\burp-loader-keygen-2.jar" 点击Run按钮,弹…

flash attention的CUDA实现探讨-V3

之前关于flash attention的实现参考添加链接描述,添加链接描述,添加链接描述 lash attention的数学变换:给定三个矩阵Q,K,V,形状都是[N,d],计算S=QK.T,然后针对dim=1做softmax,然后和V继续做矩阵乘法得到形状为[N,d]的输出矩阵O,即O=softmax(QK.T,dim=1)V。 下面本人的…

【网络】tcp如何保证可靠 总结

1.确认应答机制 在一方收到另一方的数据报后需要返回ack数据报,以此让对方知道自己收到了该数据报,防止通信双方认知不一致。 2.序号和确认序号 TCP通过序列号和确认号来保证数据的有序传输。每个TCP数据包都有一个唯一的序列号,接收方通过…

01-02-1

1、day10作业 使用的代码 #include<stdio.h> void change(int* i) {*i(*i) / 2; } int main() {int i 0;scanf("%d", &i);change(&i);printf("%d", i);return 0; } ​ ​ 2、day11作业 使用的代码 #include<stdio.h> #include<…

【HIVE】(04)学会理解Hive支持的存储数据格式

系列文章回顾 【HIVE】(01)学会使用JOIN语句 【HIVE】(02)学会理解explain 【HIVE】(03)学会hive中的压缩和解压进行资源优化 【HIVE】(04)学会如何优化hive任务的mapper和reducer个数 文章目录 一.2大类存储方式二.TextFile格式三.Orc格式四.Parquet格式五.存储和压缩结合 Hiv…

Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Kubernetes渐进式学习-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 部署Node服务 2.1. 前置环境安装 2.2. 将Node服务加…

CMake中,指定源文件不使用预编译头文件,MSVC编译器

在CMake中&#xff0c;如果你想要指定某个特定的.cpp文件不使用预编译头文件&#xff08;PCH&#xff09;&#xff0c;你可以通过设置该文件的编译属性来实现。以下是一个基础的示例&#xff1a; cmake # 假设你的预编译头文件设置如下 target_precompile_headers(your_target…

jdk8新特性----Lambda表达式

一、介绍 1、简介 Java的Lambda表达式是Java 8引入的一个特性&#xff0c;它支持函数式编程&#xff0c;允许将函数作为方法的参数或返回值&#xff0c;从而简化了匿名内部类的使用&#xff0c;并提供了对并行编程的更好支持。 可以将Lambda表达式理解为一个匿名函数&am…