该代码会帮我解释一下我的问题:队列可运行在其他线程运行的Android
public class TestHandlerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Thread(){
public void run(){
for (int i=0;i<20;i++){
handler.post(run);
}
}
}.start();
}
Handler handler=new Handler(){
};
Runnable run = new Runnable(){
public void run(){
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("TAG", "Message processed");
}
};
}
这样新的线程,使它们由处理在主线程服务的申请。 我需要做的恰恰相反。 UI线程启动请求,这些请求由另一个线程按顺序提供(顺序很重要),并且在每个请求结束时不需要通知UI线程。 一些要点对此很重要:请愿书有3个参数(int,int,boolean),他们在数据库中进行更改,并且由用户与UI的交互生成,因此不会同时启动 推进
查看工作线程拉出队列。您可以使用其中一个并发队列,例如ConcurrentLinkedQueue。 – Steven
感谢您的快速解答Steven,我是多线程的入门者。我检查了ConcurrentLinkedQueue,看起来像一个执行while(true){if(queue.pool()!= null)/ *的线程,因此pool * /}有效,但不是CPU最优。你能解释我怎样才能改善这一点?谢谢! – Jaimit