3.消息机制总结——总结

news2024/9/28 21:11:35
  1. Handler 机制的底层逻辑就是利用 epoll + eventfd
  2. Android2.3开始 Google把Handler的阻塞/唤醒方案从Object#wait()/notify(),改为Linux epoll实现,why?
  3. 原因在于,native也引入了消息管理机制,用于提供个C/C++开发者使用,而现有的阻塞唤醒只支持java,Native也希望想java一样,main线程没有消息时进入阻塞状态,有到期消息需要执行几时过来处理?How?
    1. java通过jni调用Navie状态进入阻塞态
    2. 如果只是把阻塞唤醒移植到native曾,倒也不用epoll,用c++ 的wait、notify一样可以实现,引用epoll的与另一个原因是: Native 层支持监听自定义 Fd(比如 Input 事件就是通过 epoll 监听 socketfd 来实现将事件转发到 APP 进程的),而一旦有监听多个流事件的需求,那就只能使用 Linux I/O 多路复用技术
  4. eventfd 实现的是计数的功能,只要 eventfd 计数不为 0 ,那么表示 fd 是可读的。再结合 epoll 的特性,我们可以非常轻松的创建出 生产者/消费者模型

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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

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

相关文章

nicegui组件button用法深度解读,源代码IDE运行和调试通过

传奇开心果微博文系列 前言一、button 组件基本用法1. 最基本用法示例2. 创建带图标按钮 二、button按钮组件样式定制1. 按钮的尺寸调整2. 改变颜色示例3. 按钮的自定义字体大小4. 圆角形状示例5. 自定义边框6. 添加阴影7. 复合按钮8. 浮动按钮9. 可扩展浮动操作按钮QFAB10. 按…

使用k8s部署java前后端服务

一、项目架构 前端、后端、数据库 1)前端 静态的资源:img css html js文件 js:axios、ajax 2)后端 提供数据:根据web前端发送的请求,从数据库中获取数据 请求都是无状态的,如何保持会话 …

依赖注入之set注入

set注入 set注入,基于set王法实现的,底层通过反射机制调用属性对应的set方法,然后给属性赋值,这种方法要求属性必须对外提供set方法 1. 想让Spring调用对应的set方法,需要配置property标签 2. name属性怎么指定值:s…

【含文档】基于Springboot+微信小程序 的高中信息技术课程在线测试系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 当游客…

解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…

CentOS系统yum出现Could not retrieve mirrorlist问题

问题 yum search wget当使用yum命令来搜索或安装软件时,如果出现Could not retrieve mirrorlist,即无法检索镜像列表。出现的问题截图如下: 解决方法: 跳转到root用户 su - rootcd到/etc/yum.repos.d/目录下 cd /etc/yum.rep…

异步框架 fastapi -- 简单介绍

文章目录 fastapi 介绍restful接口设计简单应用Swagger风格的接口文档 fastapi 介绍 fastapi官方文档 fastapi 是现代化、高性能、基于python标准类型注释的异步web框架;基于python构建web APIs,性能可比go语言;高效编码,更少的…

大数据的挑战是小文件

小文件可能会给存储平台及其支持的应用程序带来大问题。在 Google 上搜索 “small files performance” 会产生 2M 的结果。这篇博文将更深入地研究小文件问题,深入研究其根源并总结解决方案。 问题陈述 出于本讨论的目的,小文件通常被视为小于 64 KB …

攻防世界---->happyctf

做题笔记。 下载 查壳。 32ida打开。 先运行一下: C写的。 追踪 good job 具体跟踪分析: 说白了,就是一个用于判断 flag key的。 往上走: 跟进。 打开 od吧。 锁定地址 追踪看看。(此题,ida不能动态 od可以…

Hugging Face从命令行到桌面:Chat-macOS让AI互动更简单,关键还免费!

你是否曾经觉得,命令行操作虽然强大,但总是有些难以上手?或者,你是否希望和AI互动可以像日常使用macOS应用一样直观?那你一定要试试Chat-macOS,它让你从命令行走向桌面,体验更轻松的AI互动方式。 1. 什么是Chat-macOS? Chat-macOS是一个桌面应用程序,它能够将Hug…

Windows安全日志7关键事件ID分析

背景 Windows日志里的事件分析有助于在系统出现异常时分析出异常原因,利于针对问题做出系统的修复和预防。今天阿祥就整理出Windows常见的事件,分析这些事件的具体原因,希望对系统运维工程师们有一定的帮助! 具体事件ID 1、事件ID…

MySQL—触发器详解

基本介绍 触发器是与表有关的数据库对象,在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。 触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。 使用别名 NEW 和 OLD 来引用触发器中发生变化的记…

JSR 303学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

fiddler抓包12_篡改请求(请求前断点)

课程大纲 原理 正常“客户端-服务器”通信,即发送请求,接收返回。 Fiddler抓包是「客户端-浏览器」进行交互时,请求和响应都会从Fiddler通过,Fiddler可以捕获并展示。 请求前断点(BreakPoint Before Request&#xff0…

[论文阅读] ChartInstruct: Instruction Tuning for Chart Comprehension and Reasoning

原文链接:http://arxiv.org/abs/2403.09028 源码链接:https://github.com/vis-nlp/ChartInstruct 启发:本文构建的instruction-tuning数据集以及使用该数据集对模型进行微调的过程都值得学习。 Abstract 研究对象:图表 研究…

yakit使用教程(一,下载并进行基础配置)

一,yakit简介 YAKIT(Yet Another Knife for IT Security)是一款网络安全单兵工具,专为个人渗透测试员和安全研究人员设计。它整合了一系列实用的安全工具,例如密码破解工具、网络扫描器、漏洞利用工具等,帮…

空间复杂度动态顺序表

目录 1>>闲话 2>>空间复杂度 3>>顺序表!!(有点难度) 3.1>>静态顺序表 3.2>>动态顺序表 3.2.1>>初始化动态顺序表 3.2.2>>实现尾插 4>>结语 1>>闲话 感谢大家对小…

【YOLO目标检测反光衣数据集】共2388张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:2388 标注数量(txt文件个数):2388 标注类别数:2 标注类别名称:reflective_clothes、other_clothes 数据集下载:反光衣数据集 图片示例 数据…

HJ50-四则运算:栈的运用、中缀表达式转后缀表达式并计算结果

文章目录 题目一、分析1.1表达式预处理1.2中缀表达式转后缀1.3 后缀表达式计算结果 二、答案 题目 一、分析 通过利用栈将中缀表达式转换为后缀表达式,在根据后缀表达式计算运算结果。由于包含负数操作数的情况,并且操作数位数不固定为1,因此…

【算法篇】二叉树类(3)(笔记)

目录 一、Leetcode 题目 1. 二叉树的最近公共祖先 2. 二叉搜索树的最近公共祖先 (1)递归法 (2)迭代法 3. 二叉搜索树中的插入操作 (1)递归法 (2)迭代法 4. 删除二叉搜索树中…