android 多线程——Callback

android 多线程——Callback

线程同步的四种机制

线程同步有四种机制,分别是临界区(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花费在上下文的切换的时间将多于执行程序的时间!

相关推荐

口琴入门指南 如何系统地自学口琴
365bet-亚洲版官网

口琴入门指南 如何系统地自学口琴

📅 07-08 👁️ 7281
员工自我提升与改变怎么写
国内在365投注

员工自我提升与改变怎么写

📅 08-04 👁️ 2492
qq阅读app查看目录的方法
365bet线上攻略

qq阅读app查看目录的方法

📅 07-28 👁️ 954