关于异步并发,官网文档说:
1)单次io用promise
2)io密集型任务用taskpool,taskpool任务不能超过3分钟
3)io操作底层是在io线程池完成的
我的问题是:
1)既然文件io底层是在io线程池完成,为什么还要用taskpool呢,像fs.write方法,直接主线程调不就行了
2)单次io和io密集型本质区别是什么呢,如果写一个大文件,比如采集camera数据写到一个视频文件,一秒中可能有几十帧,持续采集3秒,这个算单次还是密集
关于异步并发,官网文档说:
1)单次io用promise
2)io密集型任务用taskpool,taskpool任务不能超过3分钟
3)io操作底层是在io线程池完成的
我的问题是:
1)既然文件io底层是在io线程池完成,为什么还要用taskpool呢,像fs.write方法,直接主线程调不就行了
2)单次io和io密集型本质区别是什么呢,如果写一个大文件,比如采集camera数据写到一个视频文件,一秒中可能有几十帧,持续采集3秒,这个算单次还是密集
解决方案
1.文件IO底层是在IO线程池完成,这意味着文件的读写操作会在后台的IO线程中进行,而不会阻塞主线程的执行。
使用IO线程池可以确保IO操作不会影响主线程的响应速度,提高系统的并发性能。
2.单次IO:指的是一次性的IO操作,通常是指执行一次读取或写入操作,操作时间较短,资源消耗较小,不会长时间占用系统资源。
IO密集型:指的是大量的IO操作集中在一段时间内进行,可能涉及大量数据的读写、网络通信等,需要长时间执行且会占用较多的系统资源。
可以算作是IO密集型任务,因为涉及大量数据的写入操作,持续时间较长且会占用较多的系统资源。
单次I/O任务开发可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/single-io-development-0000001774279766I/O密集型任务开发可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/io-intensive-task-development-0000001820879745