作者:jiuye | 来源:互联网 | 2023-10-12 14:22
发现RxJava中
/
等线程的thread priority是跟mainThread一样的,如何将其设置为
1
| Process.THREAD_PRIORITY_BACKGROUND |
在网上找了好久,发现jake大神提到过这个问题,并且为此向RxJava项目提交过一些代码,但是那是针对1.x的。
在2.x上,有一个issue提到过这个问题,项目的一位开发人员回复说2.x中是可以更改每个Scheduler的线程优先级的。经过一番查找,在
中找到了设置的方法,那就是通过
1
| System.setProperty(String key, String value) |
,其中
是修改io线程优先级的key,但由于
1
| Process.THREAD_PRIORITY_BACKGROUND |
是android系统里的值,在java里,线程优先级取值范围是1-10,抱着试试看的态度,我设置了一下,发现果然不起作用:将
1
| Process.THREAD_PRIORITY_BACKGROUND |
设置上之后,通过
1
| Process.getThreadPriority(Process.myTid()) |
拿到的值依然是0,即跟mainThread一样,于是,我来求救了。