OpenHarmony开发者论坛
标题:
Worker 线程为何会影响主线程的运行?
[打印本页]
作者:
msdone
时间:
2023-10-25 19:18
标题:
Worker 线程为何会影响主线程的运行?
【问题描述】
问题现象和发生的背景
当在 Worker 线程中使用 FileAccess 服务,Worker 关闭时,FileAccess 的服务也会关闭,导致主线程调用不了 FileAccess 的API(报 14300001 IPC 通信失败的错误)。如果在主线程重新请求 FileAccessHelper 会报 nullptr 的错误
相关的代码,截图,日志信息
(, 下载次数: 10)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
我想要达到的结果
当子线程任务(任务需要使用 FileAccess)完成,关闭子线程后,主线程依然可以使用 FileAccess
【运行环境】
硬件:rk3568
ROM版本:
3.2 Release
DevEvoStudio版本:DevEco Studio 3.1.1 Release
SDK版本:3.2.13.5
作者:
深开鸿_王石
时间:
2023-11-1 08:54
[md]主线程和worker要用底层库时要分别打开,创建实例,不能共用
[/md]
作者:
胖子的梦
时间:
2023-11-6 10:42
[md]主线程和worker线程资源是不共享的,所以在worker创建使用的FileAccess服务 ,主线程是不能使用FileAccess 服务的。主线程需要自己再创建一个FileAccess服务
[/md]
作者:
msdone
时间:
2023-11-8 11:35
回复
胖子的梦
: worker 创建 FileAccessHelper 之后,如果不关闭 worker 线程,在主线程创建 FileAccessHelper 会报空指针,如果关闭 worker 线程,在主线程创建 FileAccessHelper 会报 cpp 错误:Signal:SIGSEGV(SEGV_MAPERR)@0x00487091cf989e85 ,
作者:
msdone
时间:
2023-11-8 11:35
回复
深开鸿_王石
: worker 创建 FileAccessHelper 之后,如果不关闭 worker 线程,在主线程创建 FileAccessHelper 会报空指针,如果关闭 worker 线程,在主线程创建 FileAccessHelper 会报 cpp 错误:Signal:SIGSEGV(SEGV_MAPERR)@0x00487091cf989e85 ,
作者:
msdone
时间:
2023-11-9 20:25
[md]4.0 的 Worker 可以实现了
![image.png](data/attachment/forum/202311/09/202440oed44a8p8f4h4zy5.png "image.png")
[/md]
作者:
马迪
时间:
2023-11-11 06:59
回复
msdone
: 可以共用一个了?
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5