队列和同步锁备忘

来源:互联网 发布:网络银行业务 编辑:程序博客网 时间:2024/06/06 09:05

在不同线程中传递对象,尤其是匿名内部类对象,比如在A线程中初始化匿名内部类,传递到B线程中,在B线程中调用,相当于B线程中调用这个匿名内部类对应的外部对象。

不同线程调用,是主动调用这个匿名内部类对应的对象,可能造成并发问题,可以加锁。


队列是一个容器,也在不同线程中调用,但是因为主要作用是事件通知类型的,也就是说是异步模式,一个线程中发出这个消息放到队列中,另一个线程中去取出消息并触发事件,和上面的不同主要是队列是异步模式,多用在事件通知,上面是主动调用模式。


多线程加同步锁,或者使用单线程队列,都可以解决并发的问题,但是用法不一样。

android中在不同线程中传递了handle匿名内部类,但是使用的是队列调用,主要原因是一个UI程序,在刷新界面元素的机制上,最好像事件通知一样,一个线程循环取出事件并执行,理论上,不同线程中加锁调用handle改变UI也可以做到,但是决定UI显示的对象,在不同线程中实时改变,造成的一些问题可能不好解决,比较复杂。



总结,在解决并发问题时,优先是同步锁,单线程队列并不是解决多线程并发问题的,而是异步通知的。

0 0
原创粉丝点击