gpt4 book ai didi

java - android主类中函数的并行执行

转载 作者:行者123 更新时间:2023-12-01 12:29:11 26 4
gpt4 key购买 nike

在我的应用程序中,我有 6 个数组,每次我的主要 Activity 开始时都应该更新它们。它们现在都使用主线程进行了更新,这导致我的应用程序速度下降。这是我的 dbUpdate() 函数:

private void dbUpdate(){
dateDB = getDateValues();
valueDB = getValues();
catDB = getCatValues();
catIndexDB = getCatIndex();
catExpenseDB = getCatExpense();
catLimitDB = getCatLimits();
}

这些数组不依赖于其他数组,我想将它们更新为 6 个并行线程。我读过this文章并尝试将每个数组 get 函数放入 Runnable 中:

  Runnable run6 = new Runnable(){
@Override
public void run(){
catLimitDB = getCatLimits();
}
};

现在我有 6 个 Runnable 和 1 个 Handler,并且我更改了我的 dbUpdate() 函数:

private void dbUpdate(){
hand.post(run1);
hand.post(run2);
hand.post(run3);
hand.post(run4);
hand.post(run5);
hand.post(run6);
}

但是当我运行我的应用程序时,我感觉没有什么不同。有人可以帮我弄这个吗?我应该提到,这是我第一次体验多线程编程。

最佳答案

如果你真的想并行运行它们,你可以这样做:

new Thread(run1).start();
new Thread(run2).start();
new Thread(run3).start();
..

使用 handler.post,您可以将作业添加到处理程序的队列中 - 并且您的处理程序可能配置为在 UI 线程上运行 - 所以这可能不是您想要的。

关于java - android主类中函数的并行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26084837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com