嗨我很奇怪在一个不在UI线程的线程内的while循环中使用Thread.sleep(x)的性能有多糟糕......这不是使用cpu循环吗?例如
.wraper{
min-height: 165px;
overflow: hidden;
height: 200px;
}
.content {
margin-top: 30px;
}
#more{
width:6%;
margin-right:0px;
float:right;
}
.wraper.complete{
height: auto;
}
h3.sub{
color:#d34615;
text-decoration:underline;
padding-left: 10px;
}
#index-hr{
width:100%;
border-top:1px solid #333;
opacity:0.3;
}
答案 0 :(得分:3)
您应该使用synchronized
块来依赖wait
/ notify
/ notifyAll
来同步您的线程,在您的情况下甚至不需要修改任何状态,任何共享的Object
实例都足够了。
代码可以是:
// Mutex to share between the threads waiting for the result.
Object mutex = new Object();
...
onComplete() {
synchronized (mutex) {
// It is done so we notify the waiting threads
mutex.notifyAll();
}
}
synchronized (mutex) {
// Wait until being notified
mutex.wait();
}
答案 1 :(得分:1)
您实际上可以在线程上使用.join()
等待它完成,所以
Thread thread = new Thread(new Runnnable{ run() {
while(true){
someImageView.animate()....setListener(..).start();
}
});
thread.start();
thread.join();