美文网首页
android 多线程——Callback

android 多线程——Callback

作者: DouMarK | 来源:发表于2019-07-25 00:46 被阅读0次

线程同步的四种机制

线程同步有四种机制,分别是临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)

  • 临界区:
    多个线程访问同一个共享资源的时候,有一个线程进入公共资源(任意时刻只允许一个线程访问的资源)后,其他打算访问的线程被挂起,那么这个公共资源可以被称为临界区,当在临界区被释放时,其他线程才可进入。
  • 互斥量:
    采用互斥对象机制(例如被声明 synchronized加锁的方法)
  • 信号量:
    在资源限制的线程数内,允许多个线程访问的数量。
  • 事 件:
    通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作

Callback回调函数:

在需要使用的时候,设置Callback接口,并在里面设置需要回调的方法:

void interface CallBack{
  public void constant(int i);
}

在需要传参数的方法内实现

int i  = 3;
CallBack mCallBack;
mCallBack.constant(i);

在需要响应的方法设置:

CallBack mCallBack = new CallBack() {
  @Override
  public void constant(int i) {
   Log.w("DDD",String.valueOf(i));
  }
};

有效利用多线程的关键是理解程序是并发执行而不是串行执行的。例如:程序中有两个子系统需要并发执行,这时候就需要利用多线程编程。

通过对多线程的使用,可以编写出非常高效的程序。不过请注意,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。

请记住,上下文的切换开销也很重要,如果你创建了太多的线程,CPU花费在上下文的切换的时间将多于执行程序的时间!

相关文章

网友评论

      本文标题:android 多线程——Callback

      本文链接:https://www.haomeiwen.com/subject/hpiqrctx.html