安卓定时器任务线程安全

4
我有一个类可以启动新线程,并使用处理程序在UI线程中写入数组,它们是线程安全的。如果我从计时器任务启动这些线程,它们与UI线程仍然是线程安全的吗?谢谢!
2个回答

2
如果Handler对象绑定到UI线程,则可以安全地在Handler中更新数组(假设该数组也绑定到UI线程)。
请查看Handler文档,特别是这部分:
引用:

处理程序允许您发送和处理与线程的MessageQueue相关联的Message和Runnable对象。每个处理程序实例与单个线程及其消息队列相关联。创建新处理程序时,它会绑定到创建它的线程/消息队列——从那时起,它将向该消息队列传递消息和可运行项,并在它们从消息队列中出来时执行它们。

处理程序有两个主要用途:(1)安排消息和可运行项在将来的某个时间点执行;(2)将操作排队以在不同于您自己的线程上执行。

它说明了Handler代码在其所属的线程上执行。

0

如果你运行的线程是正确的线程安全的,那么无论你从哪里启动它们,无论是UI线程、AsyncTask还是TimerTask,都没有关系。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接