執行緒的同步和非同步

2021-07-28 03:01:04 字數 692 閱讀 3700

執行緒同步的概念就是給方法加鎖,當其他執行緒呼叫該方法的時候只有鎖解開了才可以呼叫,否則不能呼叫。使用synchronized關鍵字可以給方法加鎖,如果方法不加鎖會出現所謂的執行緒非同步,就會有意想不到的效果。

看下面乙個開啟了兩個執行緒的**,而且是非同步的

package com.li;

public

class threadname

}.start();

new thread ()

}.start();

}public

void

myrun(string name)

}

在輸出的資料中,我們會發現有些資料很奇怪,比如「周吳」之類的等等,這就是執行緒非同步造成的。

把**中的一部分修改如下:

public

void

myrun(string name)

system.out.println();

}

但這種方法並不適用於靜態方法

在靜態方法中使用

public

void

myrun(string name)

system.out.println();

}

這種方法就可以了,對於不是靜態方法的也適用。

執行緒同步和非同步

執行緒同步和執行緒非同步有什麼區別?重要基礎知識 打個比方,如果你在等乙個人,同步的時候,你會一直等到她來了之後才做其他事情,這個過程除了等待你啥都不會做,非同步的時候,你一邊在等,可能一邊玩遊戲或者是看報紙什麼的,一直到她到來,你的等待狀態才會結束 在實現上,同步的過程會阻塞程序的所有其他操作,將...

執行緒同步和非同步

執行緒同步 是多個執行緒同時訪問同一資源,等待資源訪問結束,浪費時間,效率低 執行緒非同步 訪問資源時在空閒等待時同時訪問其他資源,實現多執行緒機制 非同步處理就是,你現在問我問題,我可以不回答你,等我用時間了再處理你這個問題.同步不就反之了,同步資訊被立即處理 直到資訊處理完成才返回訊息控制代碼 ...

執行緒的同步和非同步

執行緒同步的概念就是給方法加鎖,當其他執行緒呼叫該方法的時候只有鎖解開了才可以呼叫,否則不能呼叫。使用synchronized關鍵字可以給方法加鎖,如果方法不加鎖會出現所謂的執行緒非同步,就會有意想不到的效果。看下面乙個開啟了兩個執行緒的 而且是非同步的 package com.li public ...