我有两个线程a和b。 a是UI线程,b是非UI线程。
我的代码看起来像这样:
start a :
int i;
start b (asynchronously){
populateInt(i);
}
//back to a
if (i = something){
doSomething();
异步运行线程的问题: populateInt()方法仍然在线程b上运行,而我的线程a正在尝试执行doSomething(),这会产生错误的结果。
同步运行线程的问题: Java应用程序动态生成一些代码,用户希望调试该代码。在调试期间,方法populateInt()将控制权转移到该代码并且UI线程被挂起,这导致调试挂起。
如何在线程b完成后确保线程执行doSomething()时,如何异步运行线程,填充' i' ?