【发布时间】:2017-07-25 14:19:48
【问题描述】:
我目前正在开发一个用 java 编写的 android 项目。
我有一个仪表板,可以从 cloudant 数据库中查询数据并将数据呈现在图表上。然而,数据必须在收到时进行处理。
我有 4 个异步任务,它们同时(或应该)处理 doInBackground Override 方法中接收到的数据。进程很慢,我试了一下线
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
在每个 AsyncTask 中。
但是,4个AsynkTasks似乎都一个接一个地发生,这是由于将线程的优先级更改为最大吗?当一个线程的优先级发生变化时,它是否会停止所有其他线程并只继续一个线程直到它完成?
【问题讨论】:
-
来自
Thread上的JavaDoc:“每个线程都有一个优先级。优先级较高的线程优先于较低优先级的线程执行。” -
即使你改变了优先级,除非它们是非常小的任务,它们仍然应该表现出一定程度的并行性。贴更多代码,看看其他地方是否有错误。
标签: java android-asynctask thread-priority