Java项目中如何等待与唤醒线程-创新互联
这期内容当中小编将会给大家带来有关Java项目中如何等待与唤醒线程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

DEMO1: wait() 与 notify()
public class Test {
static class ThreadOne extends Thread {
private Callback mCallback;
@Override
public void run() {
work();
if (mCallback != null) {
mCallback.onResult(false);
}
}
// 耗时 3s
private void work() {
System.out.println(" 正在查询数据库 1");
long startTime = System.currentTimeMillis();
while (true) {
if (System.currentTimeMillis() - startTime < 3000) {
continue;
}
break;
}
}
public void setCallback(Callback callback) {
mCallback = callback;
}
public interface Callback {
void onResult(boolean result);
}
}
static class ThreadTest extends Thread {
private Object mLock = new Object();
private ThreadOne mThreadOne;
@Override
public void run() {
workOne();
System.out.println(" 根据结果继续做其他事情 ");
}
private void workOne() {
mThreadOne = new ThreadOne();
mThreadOne.setCallback(new ThreadOne.Callback() {
@Override
public void onResult(boolean result) {
System.out.println(" 查询数据库 1 结束,:" + (result ? " 有数据 " : " 无数据 "));
synchronized (mLock) {
mLock.notify();
System.out.println("--ThreadTest 结束等待 --");
}
}
});
mThreadOne.start();
try {
synchronized (mLock) {
System.out.println("--ThreadTest 进入等待 --");
mLock.wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] var0) {
ThreadTest threadTest = new ThreadTest();
threadTest.start();
}
} 网站题目:Java项目中如何等待与唤醒线程-创新互联
本文链接:http://www.jxjierui.cn/article/ihejg.html


咨询
建站咨询
