Java函数回调机制
2017-03-24 16:10
267 查看
利用java的函数回调方式,开辟子线程执行耗时操作。写一个demo程序,方便以后查看。。函数回调简单说就是,方法的实现在其调用之后。
1.主要存在两个接口,一个是CallBackI负责将回调值输出到主线程;另一个HttpManger接口定义执行耗时操作的方法
2.代码如下:
public class CallBack {
public static void main(String[] args) {
getdata(new CallBackI() {
@Override
public void start() {
System.out.println("start");
}
/**
* 执行回调,取得输出
*/
@Override
public void getData(int result) {
System.out.println(result);
}
@Override
public void end() {
System.out.println("end");
}
});
}
/**
* 回调接口
* @author yuliyan
*
*/
public interface CallBackI{
public void start();
public void getData(int result);
public void end();
}
/**
* 执行回调耗时操作接口
* @author yuliyan
*/
public interface HttpManger{
public void action(int result);
}
/**
* 封装回调操作,主线成调用该方法即可
* @param callBackI
*/
public static void getdata(CallBackI callBackI){
callBackI.start();
//开辟线程执行耗时操作
HttpManger hManger = new HttpManger() {
@Override
public void action(int result) {
callBackI.getData(result);
callBackI.end();
}
};
new HttpGetData(hManger).start();;
}
}
/**
* 耗时操作
* @author yuliyan
*/
class HttpGetData implements Runnable{
HttpManger hManger;
public HttpGetData(HttpManger hManger){
this.hManger = hManger;
}
public void start(){
new Thread(this).start();
}
@Override
public void run() {
//耗时操作代码写在这
int count =0;
for(int i=0;i<1000;i+=2){
count+=i;
}
hManger.action(count);
}
}
1.主要存在两个接口,一个是CallBackI负责将回调值输出到主线程;另一个HttpManger接口定义执行耗时操作的方法
2.代码如下:
public class CallBack {
public static void main(String[] args) {
getdata(new CallBackI() {
@Override
public void start() {
System.out.println("start");
}
/**
* 执行回调,取得输出
*/
@Override
public void getData(int result) {
System.out.println(result);
}
@Override
public void end() {
System.out.println("end");
}
});
}
/**
* 回调接口
* @author yuliyan
*
*/
public interface CallBackI{
public void start();
public void getData(int result);
public void end();
}
/**
* 执行回调耗时操作接口
* @author yuliyan
*/
public interface HttpManger{
public void action(int result);
}
/**
* 封装回调操作,主线成调用该方法即可
* @param callBackI
*/
public static void getdata(CallBackI callBackI){
callBackI.start();
//开辟线程执行耗时操作
HttpManger hManger = new HttpManger() {
@Override
public void action(int result) {
callBackI.getData(result);
callBackI.end();
}
};
new HttpGetData(hManger).start();;
}
}
/**
* 耗时操作
* @author yuliyan
*/
class HttpGetData implements Runnable{
HttpManger hManger;
public HttpGetData(HttpManger hManger){
this.hManger = hManger;
}
public void start(){
new Thread(this).start();
}
@Override
public void run() {
//耗时操作代码写在这
int count =0;
for(int i=0;i<1000;i+=2){
count+=i;
}
hManger.action(count);
}
}
相关文章推荐
- paip.函数方法回调机制跟java php python c++的实现
- 深入浅出Java回调机制 / 回掉函数 / 深入浅出理解 Java回调机制(异步) GOOD
- 2篇关于JAVA回调函数机制的文章
- paip.函数方法回调机制跟java php python c++的实现
- Java中关于函数回调和反射机制的介绍
- JAVA的回调函数和反射机制(原理不说直接看代码),补充动静态代理
- Java中函数回调机制的深入理解
- Java回调机制实现
- java回调机制及Hibernate中的HibernateTemplate实现
- java回调机制
- [待修改]java接口用法:向上转型和回调函数 回调机制在 Android 监听用户界面操作中的体现
- java 回调机制小结
- [转]java回调机制
- java回调机制
- JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
- java回调机制
- Java中回调机制
- JAVA回调机制(转)
- C++中 函数,函数模板,函数对象,函数对象模板 与 回调机制 不得不说的事
- JAVA回调机制(转)