zoukankan      html  css  js  c++  java
  • HarmonyOS 多线程

    1.异步

    2.同步

    3.任务组

    一  异步

     /**
         * 异步
         */
        private void click1() {
            HiLog.info(hiLogLabel, "click1:start");
            TaskDispatcher dispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
            dispatcher.asyncDispatch(new Runnable() {
                @Override
                public void run() {
                    HiLog.info(hiLogLabel, "click1:doing1");
                }
            });
    
            dispatcher.asyncDispatch(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    HiLog.info(hiLogLabel, "click1:doing2");
                }
            });
    
            dispatcher.asyncDispatch(new Runnable() {
                @Override
                public void run() {
                    HiLog.info(hiLogLabel, "click1:doing3");
                }
            });
    
        }

    二  同步

    /**
         * 同步
         */
        private void click2() {
            HiLog.info(hiLogLabel, "click2:start");
            TaskDispatcher dispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
            dispatcher.syncDispatch(new Runnable() {
                @Override
                public void run() {
                    HiLog.info(hiLogLabel, "click2:doing1");
                }
            });
            HiLog.info(hiLogLabel, "click2:end1");
            dispatcher.syncDispatch(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    HiLog.info(hiLogLabel, "click2:doing2");
                }
            });
            HiLog.info(hiLogLabel, "click2:end2");
            dispatcher.syncDispatch(new Runnable() {
                @Override
                public void run() {
                    HiLog.info(hiLogLabel, "click2:doing3");
                }
            });
            HiLog.info(hiLogLabel, "click2:end3");
        }

    三  任务组

    /**
    * 任务组
    */
    private void click3() {
    HiLog.info(hiLogLabel, "click3:start----");
    TaskDispatcher dispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
    Group group = dispatcher.createDispatchGroup();
    dispatcher.asyncGroupDispatch(group, new Runnable() {
    @Override
    public void run() {
    HiLog.info(hiLogLabel, "click3:doing1");
    }
    });

    dispatcher.asyncGroupDispatch(group, new Runnable() {
    @Override
    public void run() {
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    HiLog.info(hiLogLabel, "click3:doing2");
    }
    });

    dispatcher.asyncGroupDispatch(group, new Runnable() {
    @Override
    public void run() {
    HiLog.info(hiLogLabel, "click3:doing3");
    }
    });

    //前面3个执行完了,才会执行
    dispatcher.groupDispatchNotify(group, new Runnable() {
    @Override
    public void run() {
    HiLog.info(hiLogLabel, "click3:doing4-groupDispatchNotify");
    }
    });
    HiLog.info(hiLogLabel, "click3:start----end");
    }
  • 相关阅读:
    简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页
    配置nginx访问控制-设置防盗链
    nginx虚拟机及热部署(在线升级)
    阿里云 OSS 网页端直传
    阿里云OSS Java 生成STS
    阿里ECS访问七牛及阿里OSS速度测试
    Maven学习总结(八)——使用Maven构建多模块项目
    关于部分手机无法搜索到5G wifi信号的解决方法
    Spring Boot 2.x
    利用 qshell qupload 批量迁移服务器上的网站图片到七牛云
  • 原文地址:https://www.cnblogs.com/ligenyun/p/15651943.html
Copyright © 2011-2022 走看看