java 多异步调用_java利用多线程实现异步调用

java利用多线程实现异步调用

package com.test.t1;

public class Test2 {

public static void main(String[] args) {

final FutureTicket ft = new FutureTicket(new MyProcessData());

// 在新线程中调用耗时操作

new Thread() {

public void run() {

ft.makeRealData();

}

}.start();

ft.putData();

}

}

class FutureTicket {

private Object data = null;

private boolean completed = false;

private ProcessData pd;

public FutureTicket(ProcessData pd) {

this.pd = pd;

}

public synchronized void makeRealData() {

if (this.completed)

return;

// 获取数据的耗时操作.这里用Sleep代替

try {

Thread.sleep(10000);

} catch (Throwable t) {

}

this.data = "返回的数据内容";

this.completed = true;

notifyAll();

}

public synchronized void putData() {

while (!this.completed) {

try {

wait();

} catch (Throwable t) {

}

}

// return this.data;

// 不用返回了,直接处理

this.pd.process(this.data);

// alert(?);

}

// 这个方法也可以不要了.

public boolean isCompleted() {

return this.completed;

}

}

interface ProcessData {

public void process(Object data);

}

class MyProcessData implements ProcessData {

public void process(Object data) {

// 你不管什么时候起初数据data被获取了.

// 你只要规定如果获取到数据了如何处理

System.out.println(data.toString() + "处理完成...........");

// insert into dataBase?

}

}

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx的基础知识,</span><span>解读Nginx的核心知识、带领学员进行</span>高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页