android 大資料量的讀寫

2021-06-17 17:49:29 字數 844 閱讀 7695

在android中,後台服務做一些大資料量的讀寫操作

這個時候是否可以考慮分批處理,按這個思路,如果我們建立乙個執行緒去開啟檔案把兩千多條資料寫入,這個時候雖然是在子執行緒中,但是你會發現還是容易cpu100%

這個時候就需要考慮每次寫200百條資料,是否可以在主線程中,把這些200條資料封裝成物件,然後放入佇列queue中

然後每次每次執行完乙個再執行佇列中的下乙個分批物件,在此期間可以handler來handler.postdelayed(runnable,delaymillis);

而delaymillis的引數是最好是每個分批包不一樣的,即第乙個分批包是1秒後執行,第二個分批包是6秒後執行,以此類推,這樣就會避開5秒內

因為讀寫檔案出現兩個cpu高峰值,為了防止讀寫檔案在主線程中占用cpu高,導致其他按鍵廣播或其他介面操作無響應而anr,

需要考慮放入子執行緒中執行,而handler.postdelayed的第一引數runnable執行是主線程的多工併發,runnable不是乙個執行緒,

這裡可以在該runnable裡面建立乙個執行緒,即在主線程多工的runnable的run方法中建立乙個子執行緒,如果這個時候new乙個執行緒

則會有很多執行緒被建立,可以考慮如下

public void run()   

});}

這裡的executor是

private executor executor = executors.newcachedthreadpool();

這樣你會發現執行緒的execute child thread.id= 的值是一樣的,這裡你會體會到執行緒池的好處

以上是一些想法,不知道是否有更好的處理方法

大資料量演算法

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 位圖思想解法 include stdio.h include stdlib.h include memory.h define max num 4294967295 int mai...

大資料量處理

看看這個,異曲同工,永遠不超時 該程式是針對非常龐大的資料庫開發的,沒有用迴圈 用途 對過萬條資料的資料庫字段內容批量替換 資料庫連線 dim beeyee dbname,connstr,conn,intsn1 dim content,num,intsn,intidno,strcodea,strco...

大資料量的處理

其實這個問題老是在面試的時候提到 1。建立專門的彙總表 這個表一般是每天晚上做統計處理 建立索引 索引的話,插入和修改會變慢,也是只做統計原因之一 用來查詢,如果量非常大,那麼分表,還是大,那麼分庫,就是資料倉儲概念了 2。關聯表查詢 多表聯合查詢 的大資料,首先就是1 把多個表做成乙個統計表,或者...