導航:首頁 > 操作系統 > android變數同步

android變數同步

發布時間:2023-10-13 09:23:19

『壹』 android中,一個類里邊有兩個方法,比如A和B,線在有多個線程,都可以隨機的調用A或B,如何實現同步

public static void main(String[] args) {

S s = new S();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
s.A();
}
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
s.B();
}
}
});
t1.start();
t2.start();
}

public static class S {

public Object locka = new Object(), lockb = new Object();

public void A() {
synchronized (lockb) {
synchronized (locka) {
System.out.println("A");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
locka.notify();
}
lockb.notify();
}
}

public void B() {
synchronized (locka) {
synchronized (lockb) {
System.out.println("B");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
lockb.notify();
}
locka.notify();
}
}
}

『貳』 如何修改android手機的同步設置

修改android手機的同步設置:
Android自帶了同步功能之賬戶與同步:

(1)點擊「設置」,「賬戶與同步」選項。
(2)進人賬戶與同步設置後,勾選「背景數據『和」自動同步』這兩個選項,並且點擊要進行同步的賬戶,也可以不勾選自動同步選項進而採取手動同步。

(3)設置自動同步後。手機會自動連接網路同步,這樣就完成了手機里聯系人的同步。

『叄』 安卓手機設置中的自動同步是什麼功能

1.
android手機自帶了同步功能,也就是說在手機「設置」里「賬戶與同步」選項點擊進入後,登錄賬戶後,可以勾選設置「聯系人」、「日歷」「簡訊」、「通話記錄」「相冊」、等等有關數據,「自動同步」。
2.
同步功能,可以設置為手動同步和自動同步,自動同步下可以設置為「wifi下自動同步」這樣就不會浪費手機數據流量。
3.
設置好之後,即使有天換了個手機,登錄賬戶點選同步,也就能找回原來的信息了,是這個時代不錯的雲存儲同步功能。

『肆』 android中怎樣讓main線程和子線程同步一個變數

1、檢查Thread,確定沒有在Background thread中直接調用adapter,如果有,請移除相關代碼到Handler中處理;
2、盡量將數據放在adapter類中管理,不需要的時候清除信息(勤寫clear()),及時用notifyDataSetChanged()刷新;
3、在Activity或者Fragment合適的位置(onPause/onStop)要及時檢查thread,有adapter數據處理相關的應馬上停止;
4、這個錯誤經常出現在Activity休眠起來之後,主要還是使用adapter不太小心造成的。如果實在找不到原因,在onPause()函數中停止所有的background thread,並且在onResume()函數最前面清空adapter中的數據,並且adapter.notifyDataSetChanged()。然後重新更新載入數據,這樣一般可以解決問題。

『伍』 Android如何跨進程同步

兩個進程要進行同步,如果用IPC機制通信來同步,那麼就會遇到一個問題,那就是這兩個進程必須都已經啟動才可以,如果遇到一個進程啟動,但是另外一個進程不知道什麼時候啟動,這個辦法就很難行得通了。

這時候就可以用到Android系統根據java提供的 FileLock 類

1.FileLock是線程安全的

2.FileLock適用於進程間文件讀寫控制,不適用於同一進程的不同線程

3.分為共享鎖和獨占鎖,共享鎖允許其他進程同樣獲取共享鎖,獨占鎖不允許其他進程獲得鎖。

4.有兩種方式獲得文件鎖,FileChannel的lock和tryLock,用lock會阻塞當前線程,直到獲取到鎖,用tryLock會嘗試獲取,如果獲取失敗則返回null,不會阻塞線程。

5.FileLock釋放的條件是:自己調用release/close或者所使用的FileChannel調用close或者是JVM終止運行。

6.文件鎖的效果是與操作系統相關的。一些系統中文件鎖是強制性的,當Java的某進程獲得文件鎖後,操作系統將保證其它進程無法對文件做操作了。而另一些操作系統的文件鎖是詢問式的(advisory),意思是說要想擁有進程互斥的效果,其它的進程也必須也按照API所規定的那樣來申請或者檢測文件鎖,不然將起不到進程互斥的功能。所以文檔里建議將所有系統都當做是詢問式系統來處理,這樣程序更加安全也更容易移植。

我們這里用的就是獨占鎖。

這個是先運行的獲取鎖的類,獲取鎖後持有10s後釋放。

這個類是在第一個類運行後再運行的類,此時該進程會一直等到FileLockTest釋放鎖後才能獲得鎖然後繼續運行。我們可以在獲得鎖之後do any thing you want,從而實現進程間同步。

多次運行後可能有人會發現有時候先列印獲得鎖後列印釋放鎖,其實是這樣的,這是兩個進程,一個進程釋放鎖之後另外一個進程才可能獲得鎖,但是兩個進程的列印時間的執行不是同步的,所以不一定是先列印釋放鎖,只要時間基本一致即可(本人多次運行時間差小於2ms)。

通過這兩個類的分別運行,可以看到即使不是都啟動完成,一樣可以跨進程同步。

閱讀全文

與android變數同步相關的資料

熱點內容
演算法分析與設計二手 瀏覽:979
學編程如何配電腦 瀏覽:966
怎麼看特徵找卡密的加密方式 瀏覽:522
方舟非官方伺服器怎麼賺錢 瀏覽:512
明日之後伺服器無效是怎麼回事 瀏覽:263
蛋殼公寓app如何查水電表 瀏覽:713
ad20庫中的51單片機怎麼找 瀏覽:618
阿里雲伺服器有點卡嗎 瀏覽:215
蘋果7如何讓app後台運行 瀏覽:170
耐克app預售產品哪裡看 瀏覽:209
補全演算法一年級 瀏覽:131
evd數據調校軟體加密 瀏覽:442
app聽課與微信如何設置分屏 瀏覽:911
加密的excel怎麼撤銷 瀏覽:43
java動態數組初始化 瀏覽:978
編譯後程序塊過大不適合 瀏覽:675
李煜pdf 瀏覽:847
python寫游戲邏輯 瀏覽:489
pdf轉換成word免費版在線轉換 瀏覽:464
荒廢了三年還能做程序員嗎 瀏覽:658