android中程序和執行緒的概述

2021-06-28 21:25:07 字數 1341 閱讀 1338

在預設的情況下所有的應用的元件都是執行在同乙個程序中的,當然在某種特別耗時的動作中也可以指定新的程序。

指定新程序可以通過android:process屬性

在系統資源不足時會根據程序級別的不同kill掉執行緒,下面介紹一下程序的級別:

*乙個activity使用者正在互動(在呼叫onresume方法後)

*service繫結在乙個使用者正在互動的activity

*service正在執行在前端,服務呼叫了startforeground()。

*service正在執行乙個生命週期(oncreate(),onstart(),ondestroy())

*broadcast receiver執行onrecive()方法。

一般,只有乙個幾個前台的工作。他們被殺死只能作為最後的手段,假如記憶體低到他們不能繼續執行。一般裝置已經達到了記憶體分頁狀態,以至於去殺掉前端的程序保持使用者介面響應。

*乙個activity不是在前端,但是仍然可見,當這個時候,舉個例子假如前端開啟乙個dialog,activity就會在背後。

*乙個service繫結乙個可見的activity。

乙個可見的程序可以認為非常的重要並且不會被殺死保證全部前端程序正在執行時。

乙個程序持有乙個activity當前不可見對用於(onstop方法之後),這些程序會不影響使用者的體驗。通常這些許多後台程序執行,他們會保持乙個lru佇列來確定乙個activity最少最近時候的被殺掉。假如乙個activity實現了生命週期方法儲存當前的狀態殺掉程序後不會影響使用者體驗,因為當使用者返回activity時activity已經儲存了可見的狀態。

乙個程序不啟用任何乙個應用的元件。這個唯一的理由保證這個程序活著是為了快取目的,提高啟動時間在下次執行的時候。這個系統會程序殺死這些程序為平衡這個系統的資源在程序快取和內涵快取。

乙個應用啟動是執行在乙個process的乙個main執行緒中,該執行緒被稱為ui執行緒或者主線程。

在操作ui執行緒時要注意:

1.不要在ui執行緒中做耗時的操作,這樣會引起anr異常。

2.不要在ui執行緒以為的工作執行緒來重新整理ui,否則也會報錯。

除了ui執行緒,其他new thread()出來的執行緒被稱為工作執行緒。

工作執行緒和ui執行緒通訊可以使用以下幾種方式:

1.      activity.runonuithread(runable);

2.      view.post(runable)

3.      view.post(runable,long)

4.      通過handler和message的方式

linux執行中程序和執行緒分析

一.首先檢視系統中各程序占用cpu和記憶體的資訊,找出占用資源最多的程序pid。1.用top 獲得程序的動態更新 命令檢視 預設每5秒重新整理一次,按照cpu使用率排行。輸入m可以按照記憶體占用排行。查出占用cpu或記憶體比較高的程序pid。2.用ps 獲得程序的當前快照 命令。查出占用cpu或記憶...

理解Python中程序和執行緒模組

工作上剛好遇到需要用多程序方法提高程式執行效率的問題,梳理一下如何使用python中線程 threading 子程序 subprocess 和多程序 multiprocessing 模組來實現併發 並行操作,提高 效率。本文重在比較各模組的適用場景,每個模組的用法只做簡單概述。1,執行緒和程序的區別...

Py中程序與執行緒

實現程序 import multiprocessing as mp def washer dishes,output for dish in dishes print washing dish,dish output.put dish def dryer input while true dish ...