Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
189c7406
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
189c7406
编写于
8月 22, 2023
作者:
O
openharmony_ci
提交者:
Gitee
8月 22, 2023
浏览文件
操作
浏览文件
下载
差异文件
!22517 Add the attention of thread safe.
Merge pull request !22517 from yuqing_han/master
上级
9b9db229
1c211f31
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
62 addition
and
2 deletion
+62
-2
zh-cn/application-dev/arkts-utils/taskpool-vs-worker.md
zh-cn/application-dev/arkts-utils/taskpool-vs-worker.md
+62
-2
未找到文件。
zh-cn/application-dev/arkts-utils/taskpool-vs-worker.md
浏览文件 @
189c7406
...
...
@@ -76,7 +76,7 @@ TaskPool支持开发者在主线程封装任务抛给任务队列,系统选择
-
ArrayBuffer参数在TaskPool中默认转移,需要设置转移列表的话可通过接口
[
setTransferList()
](
../reference/apis/js-apis-taskpool.md#settransferlist10
)
设置。
-
由于不同线程中上下文对象是不同的,因此TaskPool工作线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用。
-
由于不同线程中上下文对象是不同的,因此TaskPool工作线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用
,具体请见
[
多线程安全注意事项
](
#多线程安全注意事项
)
。
-
序列化传输的数据量大小限制为16MB。
...
...
@@ -91,7 +91,7 @@ TaskPool支持开发者在主线程封装任务抛给任务队列,系统选择
-
创建Worker不支持使用其他Module的Worker.ts文件,即不支持跨模块调用Worker。
-
由于不同线程中上下文对象是不同的,因此Worker线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用。
-
由于不同线程中上下文对象是不同的,因此Worker线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用
,具体请见
[
多线程安全注意事项
](
#多线程安全注意事项
)
。
-
序列化传输的数据量大小限制为16MB。
...
...
@@ -165,3 +165,63 @@ const worker2 = new worker.ThreadWorker('../workers/worker.js');
-
Worker存在数量限制,支持最多同时存在8个Worker。
-
在API version 8及之前的版本,当Worker数量超出限制时,会抛出“Too many workers, the number of workers exceeds the maximum.”错误。
-
从API version 9开始,当Worker数量超出限制时,会抛出“Worker initialization failure, the number of workers exceeds the maximum.”错误。
## 多线程安全注意事项
多线程安全是指多个线程同时访问或修改共享资源时,能够保证程序的正确性和可靠性。
开发者选择TaskPool或Worker进行多线程开发时,在TaskPool和Worker的工作线程中导入的API和模块需要支持多线程安全,否则可能会导致多线程数据竞争问题,造成应用程序异常或崩溃。
在TaskPool或Worker的工作线程中支持使用以下模块,其他模块在使用时需要验证是否满足线程安全。
-
console
-
setInterval
-
setTimeout
-
clearInterval
-
clearTimeout
-
@ohos.buffer
-
@ohos.convertxml
-
@ohos.file
-
@ohos.file.backup
-
@ohos.file.cloudSync
-
@ohos.file.cloudSyncManager
-
@ohos.file.environment
-
@ohos.file.fileAccess
-
@ohos.file.fileExtensionInfo
-
@ohos.file.fileuri
-
@ohos.file.fs
-
@ohos.file.hash
-
@ohos.file.photoAccessHelper
-
@ohos.file.picker
-
@ohos.file.securityLabel
-
@ohos.file.statvfs
-
@ohos.file.storageStatistics
-
@ohos.file.volumeManager
-
@ohos.fileio
-
@ohos.hilog
-
@ohos.multimedia
-
@ohos.multimedia.image
-
@ohos.net
-
@ohos.net.http
-
@ohos.pasteboard
-
@ohos.systemDateTime
-
@ohos.systemTimer
-
@ohos.taskpool
-
@ohos.uri
-
@ohos.url
-
@ohos.util
-
@ohos.util.ArrayList
-
@ohos.util.Deque
-
@ohos.util.HashMap
-
@ohos.util.HashSet
-
@ohos.util.LightWeightMap
-
@ohos.util.LightWeightSet
-
@ohos.util.LinkedList
-
@ohos.util.List
-
@ohos.util.PlainArray
-
@ohos.util.Queue
-
@ohos.util.Stack
-
@ohos.util.TreeMap
-
@ohos.util.TreeSet
-
@ohos.util
-
@ohos.worker
-
@ohos.xml
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录