当前位置: 首页 > news >正文

不是网站开发语言的是/淘宝指数入口

不是网站开发语言的是,淘宝指数入口,平台网站兼职做sap,深圳外贸有限公司HarmonyOS App(JAVA)多线程任务分发器 打印时间,记录到编辑框textfield信息显示 同步分发,异步分发,异步延迟分发,分组任务分发,屏蔽任务分发,多次任务分发 参考代码注释 场景介绍 如果应用的业务逻辑比…

HarmonyOS App(JAVA)多线程任务分发器

打印时间,记录到编辑框textfield信息显示

同步分发,异步分发,异步延迟分发,分组任务分发,屏蔽任务分发,多次任务分发

参考代码注释

场景介绍

如果应用的业务逻辑比较复杂,可能需要创建多个线程来执行多个任务。这种情况下,代码复杂难以维护,任务与线程的交互也会更加繁杂。要解决此问题,开发者可以使用“TaskDispatcher”来分发不同的任务。

接口说明

TaskDispatcher是一个任务分发器,它是Ability分发任务的基本接口,隐藏任务所在线程的实现细节。

为保证应用有更好的响应性,我们需要设计任务的优先级。在UI线程上运行的任务默认以高优先级运行,如果某个任务无需等待结果,则可以用低优先级。

表1 线程优先级介绍

优先级

详细描述

HIGH

最高任务优先级,比默认优先级、低优先级的任务有更高的几率得到执行。

DEFAULT

默认任务优先级, 比低优先级的任务有更高的几率得到执行。

LOW

低任务优先级,比高优先级、默认优先级的任务有更低的几率得到执行。

TaskDispatcher具有多种实现,每种实现对应不同的任务分发器。在分发任务时可以指定任务的优先级,由同一个任务分发器分发出的任务具有相同的优先级。系统提供的任务分发器有GlobalTaskDispatcher、ParallelTaskDispatcher、SerialTaskDispatcher 、SpecTaskDispatcher。

  • GlobalTaskDispatcher

    全局并发任务分发器,由Ability执行getGlobalTaskDispatcher()获取。适用于任务之间没有联系的情况。一个应用只有一个GlobalTaskDispatcher,它在程序结束时才被销毁。

     
    1. TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
  • ParallelTaskDispatcher

    并发任务分发器,由Ability执行createParallelTaskDispatcher()创建并返回。与GlobalTaskDispatcher不同的是,ParallelTaskDispatcher不具有全局唯一性,可以创建多个。开发者在创建或销毁dispatcher时,需要持有对应的对象引用 。

     
    1. String dispatcherName = "parallelTaskDispatcher";
    2. TaskDispatcher parallelTaskDispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);
  • SerialTaskDispatcher

    串行任务分发器,由Ability执行createSerialTaskDispatcher()创建并返回。由该分发器分发的所有的任务都是按顺序执行,但是执行这些任务的线程并不是固定的。如果要执行并行任务,应使用ParallelTaskDispatcher或者GlobalTaskDispatcher,而不是创建多个SerialTaskDispatcher。如果任务之间没有依赖,应使用GlobalTaskDispatcher来实现。它的创建和销毁由开发者自己管理,开发者在使用期间需要持有该对象引用。

     
    1. String dispatcherName = "serialTaskDispatcher";
    2. TaskDispatcher serialTaskDispatcher = createSerialTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);
  • SpecTaskDispatcher

    专有任务分发器,绑定到专有线程上的任务分发器。目前已有的专有线程为UI线程,通过UITaskDispatcher进行任务分发。

    UITaskDispatcher:绑定到应用主线程的专有任务分发器, 由Ability执行getUITaskDispatcher()创建并返回。 由该分发器分发的所有的任务都是在主线程上按顺序执行,它在应用程序结束时被销毁。

     
    1. TaskDispatcher uiTaskDispatcher = getUITaskDispatcher();
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><Textohos:id="$+id:text_helloworld"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="horizontal_center"ohos:text="$string:mainability_HelloWorld"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_tongbu"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="同步分发"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_yibu"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="异步分发"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_yibu_yanchi"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="异步延迟分发"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_fenzhu_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="分组任务分发"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_pingbi_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="屏蔽任务分发"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_duoci_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="多次任务分发"ohos:text_size="40vp"/><Textohos:id="$+id:text_label"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="left"ohos:text="信息显示:"ohos:multiple_lines="true"ohos:text_size="20vp"/><TextFieldohos:id="$+id:text_filed_info"ohos:height="300vp"ohos:background_element="#FC0A84EF"ohos:text="信息显示区域"ohos:width="350vp"ohos:hint=""ohos:margin="2vp"ohos:text_size="20vp"/><Clockohos:id="$+id:clock"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#FF80EF66"ohos:layout_alignment="left"ohos:text_size="20vp"/></DirectionalLayout>
package com.example.myapplication.slice;import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;
import ohos.app.dispatcher.Group;
import ohos.app.dispatcher.TaskDispatcher;
import ohos.app.dispatcher.task.TaskPriority;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;import java.util.function.Consumer;public class MainAbilitySlice extends AbilitySlice {static final HiLogLabel label = new HiLogLabel(HiLog.INFO,0x00101,"shanshui");TextField textField;Clock clock2;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);HiLog.info(label,  "hellocdtxw");HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);System.out.println("hellocdtxw");Button btn_tongbu = (Button) findComponentById(ResourceTable.Id_btn_tongbu);textField = (TextField) findComponentById(ResourceTable.Id_text_filed_info);clock2 = (Clock) findComponentById(ResourceTable.Id_clock);clock2.setFormatIn24HourMode("yyyy-MM-dd HH:mm:ss");Button btn_yibu = (Button) findComponentById(ResourceTable.Id_btn_yibu);Button btn_delay = (Button) findComponentById(ResourceTable.Id_btn_yibu_yanchi);Button btn_group = (Button ) findComponentById(ResourceTable.Id_btn_fenzhu_task);Button btn_pingbi = (Button) findComponentById(ResourceTable.Id_btn_pingbi_task);Button btn_more_time = (Button) findComponentById(ResourceTable.Id_btn_duoci_task);btn_more_time.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {MoreTimesTask();}});btn_delay.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuDealyTask();}});btn_group.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuGroupTask();}});btn_pingbi.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {PingBiTask();}});btn_yibu.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuTask();}});btn_tongbu.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {HiLog.info(label,  "hellocdtxw");HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);System.out.println("hellocdtxw");TongBuTask();}});}/*同步分发任务,多线程,阻塞模式,会卡主界面,不常用*/public void TongBuTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();textField.append(time_str+":同步线程启动\n");dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任务失败");// });}}});dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任务失败");// });}}});dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任务失败");// });}}});}//异步模式,鸿蒙系统app多线程public  void YibuTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();textField.append(time_str+":异步线程启动\n");dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任务失败");});}}});dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task2:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任务失败");});}}});dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task3:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任务失败");});}}});}//异步延迟任务分发public  void YibuDealyTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();dispatcher.delayDispatch(()-> {getUITaskDispatcher().asyncDispatch(()->{textField.append(time_str+":异步延迟任务分发线程启动\n");});},1000);}//异步分组任务分发public  void YibuGroupTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();Group group = dispatcher.createDispatchGroup();dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});}//屏蔽任务分发public void PingBiTask(){TaskDispatcher dispatcher =createParallelTaskDispatcher("Dispatcher",TaskPriority.DEFAULT);Group group = dispatcher.createDispatchGroup();dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncDispatchBarrier(()->{try{Thread.sleep(1000);getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":屏蔽任务分发线程启动\n");});}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncDispatchBarrier(()->{try{Thread.sleep(1000);getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":屏蔽任务分发线程启动\n");});}catch (InterruptedException ex){}});}public void MoreTimesTask(){getGlobalTaskDispatcher(TaskPriority.DEFAULT).applyDispatch(new Consumer<Long>() {@Overridepublic void accept(Long aLong) {getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":多次任务分发线程启动"+aLong.toString()+"\n");});}},10); //执行10次}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}

 

 

相关文章:

30.HarmonyOS App(JAVA)鸿蒙系统app多线程任务分发器

HarmonyOS App(JAVA)多线程任务分发器 打印时间&#xff0c;记录到编辑框textfield信息显示 同步分发&#xff0c;异步分发&#xff0c;异步延迟分发&#xff0c;分组任务分发&#xff0c;屏蔽任务分发&#xff0c;多次任务分发 参考代码注释 场景介绍 如果应用的业务逻辑比…...

伺服电机编码器的分辨率指得是什么?

伺服电机编码器的分辨率是伺服电机编码器的重要参数。 一般来说&#xff0c;具体的伺服电机编码器型号可以找到对应的分辨率值。 伺服电机编码器的分辨率和精度不同&#xff0c;但也有一定的关系。 伺服电机编码器的分辨率是多少&#xff1f; 1、伺服编码器&#xff08;同步伺…...

WPF中使用LiveCharts绘制散点图

一、背景 这里的代码使用MVVM模式进行编写 二、Model public class DataPoint{public double X { get; set; }public double Y { get; set; }} 三、ViewModel public class ScatterChartViewModel{public SeriesCollection Series { get; set; }public ScatterChartViewMod…...

Android Studio实现内容丰富的安卓博客发布平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号078 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看博客列表 3.查看博客详情 4.评论博客&#xff0c; 5.…...

【GPT-SOVITS-01】源码梳理

说明&#xff1a;该系列文章从本人知乎账号迁入&#xff0c;主要原因是知乎图片附件过于模糊。 知乎专栏地址&#xff1a; 语音生成专栏 系列文章地址&#xff1a; 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…...

数据结构大合集02——线性表的相关函数运算算法

函数运算算法合集02 顺序表的结构体顺序表的基本运算的实现1. 建立顺序表2. 顺序表的基本运算2.1 初始化线性表2. 2 销毁顺序表2.3 判断顺序表是否为空表2.4 求顺序表的长度2.5 输出顺序表2.6 按序号求顺序表中的元素2.7 按元素值查找2.8 插入数据元素2.9 删除数据元素 单链表的…...

threejs案例,与静态三角形网格的基本碰撞, 鼠标环顾四周并投球游戏

创建一个时钟对象: const clock new THREE.Clock();这行代码创建了一个新的THREE.Clock对象&#xff0c;它用于跟踪经过的时间。这在动画和物理模拟中很有用。 2. 创建场景: const scene new THREE.Scene();这行代码创建了一个新的3D场景。所有的物体&#xff08;如模型、灯…...

将FastSAM中的TextPrompt迁移到MobileSAM中

本博文简单介绍了SAM、FastSAM与MobileSAM,主要关注于TextPrompt功能的使用。从性能上看MobileSAM是最实用的,但其没有提供TextPrompt功能,故而参考FastSAM中的实现,在MobileSAM中嵌入TextPrompt类。并将TextPrompt能力嵌入到MobileSAM官方项目提供的gradio.py部署代码中,…...

KY191 矩阵幂(用Java实现)

描述 给定一个n*n的矩阵&#xff0c;求该矩阵的k次幂&#xff0c;即P^k。 输入描述&#xff1a; 第一行&#xff1a;两个整数n&#xff08;2<n<10&#xff09;、k&#xff08;1<k<5&#xff09;&#xff0c;两个数字之间用一个空格隔开&#xff0c;含义如上所示…...

基于Python的股票市场分析:趋势预测与策略制定

一、引言 股票市场作为投资领域的重要组成部分&#xff0c;其价格波动和趋势变化一直是投资者关注的焦点。准确预测股票市场的趋势对于制定有效的投资策略至关重要。本文将使用Python编程语言&#xff0c;结合时间序列分析和机器学习算法&#xff0c;对股票市场的历史数据进行…...

【C++】了解一下编码

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. ASCII编码3. unicode4. GBK5. 类型转换 1. 前言 看到string里面还有Template instantiations&#xff1a; string其实是basic_string<char>&#xff0c;它还是一个模板。 再看看wstring&#xff1…...

生成式人工智能在金融领域:FinGPT、BloombergGPT及其未来

生成式人工智能在金融领域的应用&#xff1a;FinGPT、BloombergGPT 及其他 引言 生成式人工智能&#xff08;Generative AI&#xff09;是指能够生成与输入数据相似的新数据样本的模型。ChatGPT 的成功为各行各业带来了许多机会&#xff0c;激励企业设计自己的大型语言模型。…...

webpack5零基础入门-10babel的使用

Babel JavaScript 编译器。 主要用于将 ES6 语法编写的代码转换为向后兼容的 JavaScript 语法&#xff0c;以便能够运行在当前和旧版本的浏览器或其他环境中 1.安装相关包 npm install -D babel-loader babel/core babel/preset-env 2.进行相关配置 2.1第一种写法是在webp…...

SAR ADC教程系列5——FFT频谱泄露以及相干采样

频谱泄露的出现以及如何规避&#xff1f; 为什么要相干采样&#xff1f; 1.分析ADC输出信号的频谱工具&#xff1a;DFT&#xff08;Discrete Fourier Transform) 重点&#xff1a;DFT相邻频谱频率间隔为fs/N 如何规避频谱泄露&#xff1f; 对于DFT&#xff0c;它对于接收到的信…...

算法D48 | 动态规划10 | 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

股票问题是一个动态规划的系列问题&#xff0c;今日安排的题目不多&#xff0c;大家可以慢慢消化。 121. 买卖股票的最佳时机 视频讲解&#xff1a;https://www.bilibili.com/video/BV1Xe4y1u77q https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A…...

Windows10安装RubyRails步骤

2024年3月14日安装&#xff0c;亲测。记录一下以便后续需要查看。 首先在官网下载RubyInstaller for Windows - 国内镜像 rubyinstaller.cn 版本是3.3.0 下载完后图形化界面安装 安装完毕&#xff0c;出现Ruby的命令行&#xff0c;或者在开始菜单出现start command prompt wi…...

Sqlserver 模糊查询中文及在mybatis xml【非中文不匹配查询】N@P2问题

问题 sqlserver模糊查询或相等&#xff0c;两者都无法查询。 百度方案解释 Like 后的N是表示unicode字符。获取SQL Server数据库中Unicode类型的数据时&#xff0c;字符串常量必须以大写字母 N 开头&#xff0c;否则字符串将转换为数据库的默认代码页(字符集编码)&#xff0…...

旧华硕电脑开机非常慢 电脑开机黑屏很久才显示品牌logo导致整体开机速度非常的慢怎么办

前提条件 电池需要20&#xff05;&#xff08;就是电池没有报废&#xff09;且电脑接好电源&#xff0c;千万别断电&#xff0c;电脑会变成砖头的 解决办法 更新bios即可解决&#xff0c;去对应品牌官网下载最新的bios版本就行了 网上都是一些更新驱动啊...

【go语言开发】性能分析工具pprof使用

本文主要介绍如何在项目中使用pprof工具。首先简要介绍pprof工具的作用&#xff1b;然后介绍pprof的应用场景&#xff0c;主要分为工具型应用和服务型应用。最后数据分析项目&#xff0c;先采集项目信息&#xff0c;再可视化查看 文章目录 前言应用场景工具型应用服务型应用 数…...

ARM_基础之RAS

Reliability, Availability, and Serviceability (RAS), for A-profile architecture 源自 https://developer.arm.com/documentation/102105/latest/ 1 Introduction to RAS 1.1 Faults,Errors,and failures 三个概念的区分&#xff1a; • A failure is the event of devia…...

VScode(1)之内网离线安装开发环境(VirtualBox+ubuntu+VScode)

VScode(1)之内网离线安装开发环境(VirtualBoxubuntuVScode) Author: Once Day Date: 2022年7月18日/2024年3月17日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文…...

Python爬虫与数据可视化源码免费领取

引言 作为一名在软件技术领域深耕多年的专业人士&#xff0c;我不仅在软件开发和项目部署方面积累了丰富的实践经验&#xff0c;更以卓越的技术实力获得了&#x1f3c5;30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定&#xff0c;也是对我的创新精神和专业承诺…...

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目&#xff0c;获取项目文件夹 这步基本都不会有问题&#xff1a; 二.安装Android Studio 安装过程参考教材就行了&#xff1a; https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项&#xff08;勾…...

react中hooks使用限制

只能在最顶层使用Hook 不要在循环、条件中调用hook&#xff0c;确保总是在React函数最顶层使用它们 只能React函数中调用Hook 不要在普通的js函数中调用 在React的函数组件中调用Hook 在自定义hook中调用其他hook 原因&#xff1a; 我们每次的状态值或者依赖项存在哪里&…...

2024抖音矩阵云混剪系统源码 短视频矩阵营销系统

2024抖音矩阵云混剪系统源码 短视频矩阵营销系统 矩阵营销系统多平台多账号一站式管理&#xff0c;一键发布作品。智能标题&#xff0c;关键词优化&#xff0c;排名查询&#xff0c;混剪生成原创视频&#xff0c;账号分组&#xff0c;意向客户自动采集&#xff0c;智能回复&am…...

力扣题目训练(22)

2024年2月15日力扣题目训练 2024年2月15日力扣题目训练563. 二叉树的坡度637. 二叉树的层平均值643. 子数组最大平均数 I304. 二维区域和检索 - 矩阵不可变154. 寻找旋转排序数组中的最小值 II 2024年2月15日力扣题目训练 2024年2月15日第二十二天编程训练&#xff0c;今天主要…...

[ROS 系列学习教程] rosbag Python API

ROS 系列学习教程(总目录) 本文目录 1. 构造函数与关闭文件2. 属性值3. 写bag文件内容4. 读bag文件内容5. 将bag文件缓存写入磁盘6. 重建 bag 文件索引7. 获取bag文件的压缩信息8. 获取bag文件的消息数量9. 获取bag文件记录的起止时间10. 获取话题信息与消息类型 rosbag 的 Pyt…...

TCL管理Vivado工程

文章目录 TCL管理Vivado工程1. 项目目录2. 导出脚本文件3. 修改TCL脚本3.1 project.tcl3.2 bd.tcl 4. 工程恢复 TCL管理Vivado工程 工程结构 1. 项目目录 config: 配置文件、coe文件等。doc: 文档fpga: 最后恢复的fpga工程目录ip: ip文件mcs: bit流文件等,方便直接使用src: .…...

R语言:microeco:一个用于微生物群落生态学数据挖掘的R包,第四:trans_beta class

trans_beta class&#xff1a;利用trans_beta类可以变换和绘制beta分集的距离矩阵。该类中涉及到beta多样性的分析主要包括排序、群距、聚类和方差分析。我们首先使用PCoA显示排序。 > dataset$cal_betadiv() The result is stored in object$beta_diversity ... > t1 &…...

Excel文件导入导出,SpringBoot整合EasyExcel批量导入导出,采用的JDBC+EasyExcel(附带整个Demo)

目录 0.为什么mybatis的foreach比JDBC的addBatch慢 1.引入依赖 2.Controller层 3.Service层 4.Utils工具类 5.自定义监听器 6.实体类 7Mapper层 不用Mybatis的原因就是因为在大量数据插入的时候jdbc性能比mybatis好1. 首先分批读取Excel中的数据 这一点EasyExcel有自己…...