gpt4 book ai didi

java - 我在 Android 中执行线程的方式是否正确?

转载 作者:行者123 更新时间:2023-11-30 04:52:28 24 4
gpt4 key购买 nike

我正在编写一个动态壁纸,并且在我的主壁纸服务中 fork 出两个单独的线程。一个更新,另一个绘制。我的印象是,一旦您调用 thread.start(),它就会为您处理所有事情,但经过反复试验后,似乎如果我想让我的更新和绘制线程继续运行,我必须手动保持调用他们的 run() 方法?换句话说,不是在两个线程上都调用 start() 并忘记,我必须手动设置一个延迟处理程序事件,每 16 毫秒在更新和绘制线程上调用 thread.run()。这是长时间运行线程的正确方法吗?

此外,为了终止线程,我只是将它们设置为守护进程,然后将它们清空。这个方法可以吗?我看到的大多数示例都在 while 循环中使用某种 join()/interrupt()...我不明白那个...

最佳答案

  1. 没有
  2. 没有

对于 #1,我相信您的线程正在终止。一旦离开 run() 方法,线程就被认为终止了。如果你想让线程“永远”运行,你需要重复你的 Action 。

对于 #2,即使您丢失了对它的所有引用,该线程仍将继续运行。我会向工作线程建议一个信号或条件,然后在主线程中使用 join()。

关于java - 我在 Android 中执行线程的方式是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853022/

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