Android计时器任务线程安全

时间:2012-12-20 12:23:59

标签: android multithreading

我有一个启动新线程的类,他们使用处理程序在ui线程中编写一个数组,它们是线程安全的。

如果我从计时器任务启动这些线程,它们仍然是用ui thred线程保护的吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果Handler对象绑定到UI线程,则可以安全地更新Handler中的数组(假设该数组也绑定到UI线程)。

检查Handler documentation,尤其是这部分:

  

Handler允许您发送和处理与线程的MessageQueue关联的Message和Runnable对象。每个Handler实例都与一个线程和该线程的消息队列相关联。当您创建一个新的Handler时,它被绑定到正在创建它的线程的线程/消息队列 - 从那时起,它将消息和runnables传递给该消息队列并在消息出来时执行它们队列中。

     

Handler有两个主要用途:(1)安排消息和runnables作为将来的某个点执行; (2)将要在不同于自己的线程上执行的动作排入队列。

它声明Handler代码在它所属的线程上执行。

答案 1 :(得分:0)

如果您运行的线程是正确的线程安全的,那么无论从哪个线程开始,无论是UI线程,AsyncTask还是TimerTask