1. 程式人生 > >Android建立執行緒池

Android建立執行緒池

在一個龐大的android程式中,避免不了使用耗時操作,這些操作必須寫到子執行緒中,因為如果在android系統設定的是在5秒內,android系統沒有響應的話,就會報錯ANR(程式無響應)的錯誤,隨著android的程式的功能越來越多,使用的子執行緒也越來越多,那麼android就引入了一個執行緒池的概念,我這次來看下如何來寫執行緒池。這對於以後的開發有很大的幫助。

在此之前先看下android官方的註釋,我這次就說一個執行緒池的使用。大概的意思建立一個執行緒池,在需要執行緒的時候呼叫execute來建立一個新的執行緒,執行緒池可以提高許多非同步執行程式的效能,但是當一個執行緒在60秒內沒有使用,則被執行緒池釋放掉。

需要四個方法:私有化空參構造,單例,初始化,獲取全域性執行緒池。



前兩個應該不用說的,第三個是定義一個ExecutorService的變數,newCachedThreadPool是當一個執行緒在60秒內沒有使用,則釋放。


接下來是初始化,在初始化的時候我們建立一個類MyApplication整合Application,重寫OnCreate方法,初始化執行緒池

Model.getInstance().init(this);這裡需要一個上下文,根據情況,這裡填寫this就好

別忘了在AndroidManifest.xml裡面配置

如何使用,我就在這個執行緒池裡面建立一個執行緒,在使用Ui執行緒來彈出一個吐司:

    Model.getInstance().getGlobalThreadPool().execute(new Runnable(){

         @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this,"建立執行緒池成功",Toast.LENGTH_SHORT).show();
                    }
                });
            }   

    });


效果圖: