Android中線程池的原理和應用

2021-07-25 04:30:30 字數 1370 閱讀 7156

執行緒池原理

public

class

threadpool

}/**

*要開啟的執行緒內情況:

*1、判斷runnable集合大小,不為空,取出來那個非同步任務

*3、任務集合為空,即任務都執行完了,此時執行緒等待

*/private

void

createthread()

}else}}

}.start();

}}

執行緒池應用

-寫個工具類threadmanager

/**

* 管理執行緒池

* *@author stephen

* */

public

class

threadmanager

private

static threadmanager instance = new threadmanager();

private threadpoolproxy longpool;

private threadpoolproxy shortpool;

public

static threadmanager getinstance()

// 聯網比較耗時

// cpu的核數*2+1

public

synchronized threadpoolproxy createlongpool()

return longpool;

}// 操作本地檔案

public

synchronized threadpoolproxy createshortpool()

return shortpool;

}public

class

threadpoolproxy

/*** 執行任務

*@param runnable

*/public

void

execute(runnable runnable)

pool.execute(runnable); // 呼叫執行緒池 執行非同步任務

}/**

* 取消任務

*@param runnable

*/public

void

cancel(runnable runnable) }}

}

-在其他類中應用執行緒池執行非同步任務
threadmanager.getinstance().createlongpool().execute(new runnable() 

});

c 中線程池

只有乙個前台執行緒在執行,應用程式的程序就在執行,如果多個前台執行緒在執行,但是main方法結束了,應用程式的程序任然是執行的,指導所有的前台執行緒完成其任務為止。在預設情況下,用thread建立的執行緒都是前台執行緒,執行緒池中的執行緒總是後台執行緒。在用thread類建立執行緒的時候,可以設定i...

Android的執行緒和執行緒池

執行緒是作業系統排程的最小單元 執行緒是乙個受限制的系統資源,即不能無限制的產生。執行緒的建立銷毀都有相應的開銷 時間片輪轉的方式排程每個執行緒 用途來講分為主線程和子執行緒 主線程 更新ui 子執行緒 耗時操作 在android中扮演執行緒的角色 thread,asynctask,intentse...

Python中線程池的實現

usr bin env python coding utf 8 ref blog import queue import threading import time class workmanager object def init self,work num 1000,thread num 2 s...