該代碼會幫我解釋一下我的問題:隊列可運行在其他線程運行的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