麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

對Java同步一些理解

2019-11-18 13:55:03
字體:
來源:轉載
供稿:網友

  對java同步一些理解
kingfish 2005
------------------------------------------------------------
基本概念:
每個Object都會有1個鎖.
同步就是串行使用一些資源.

(說明:以下有些例子為了突出重點,省略了不必要的代碼.非凡是省掉了一些成員變量,就是需要同步的對象.)

1. 多線程中對共享、可變的數據進行同步.
對于函數中的局部變量沒必要進行同步.
對于不可變數據,也沒必要進行同步.

多線程中訪問共享可變數據才有必要.


2. 單個線程中可以使用synchronized,而且可以嵌套,但無意義.
class Test {
public static void main(String[] args) {
Test t = new Test();
synchronized(t) {
synchronized(t) {
System.out.PRintln("ok!");
}
}
}
}

3. 對象實例的鎖
class Test{
public synchronized void f1(){
//do something here
}

public void f2(){
synchronized(this){
//do something here
}
}
}

上面的f1()和f2()效果一致, synchronized取得的鎖都是Test某個實列(this)的鎖.
比如: Test t = new Test();
線程A調用t.f2()時, 線程B無法進入t.f1(),直到t.f2()結束.

作用: 多線程中訪問Test的同一個實例的同步方法時會進行同步.

4. class的鎖
class Test{
final static Object o= new Object();

public static synchronized void f1(){
//do something here
}

public static void f2(){
synchronized(Test.class){
//do something here
}
}

public static void f3(){
try {
synchronized (Class.forName("Test")) {
//do something here
}
}
catch (ClassNotFoundException ex) {
}
}

public static void g(){
synchronized(o){
//do something here
}
}
}

上面f1(),f2(),f3(),g()效果一致
f1(),f2(),f3()中synchronized取得的鎖都是Test.class的鎖.

g()是自己產生一個對象o,利用o的鎖做同步
作用: 多線程中訪問此類或此類任一個實例的同步方法時都會同步. singleton模式lazily initializing屬于此類.

5. static method
class Test{
private static int v = 0;

public static void f1(){
//do something, 但函數中沒用用到v
}

public synchronized static void f2(){
//do something, 函數中對v進行了讀/寫.
}
}

多線程中使用Test的某個實列時,
(1) f1()是線程安全的,不需要同步
(2) f2()這個靜態方法中使用了函數外靜態變量,所以需要同步.

6. 對線程的run()進行同步沒有意義,如 public synchronized void run()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄污网站在线观看 | 国产精品视频一区二区三区四区五区 | a视频网站 | 97香蕉超级碰碰久久免费软件 | 国产精品美女久久久久久不卡 | 广州毛片| 成人免费乱码大片a毛片视频网站 | 色女人在线 | 国产免费片 | 免费国产自久久久久三四区久久 | 欧美精品18 | 一区二区三区欧洲 | 久久成人免费观看 | 综合精品| 91av在线影院| 91小视频在线观看免费版高清 | 久久网国产| 在线播放h | 日本一区二区久久 | 色交视频| 久草视频福利在线观看 | 毛片大全在线观看 | 国产毛片自拍 | 娇喘视频在线观看 | 久久精品亚洲一区 | 国产精品久久久久一区二区 | 成人黄色网战 | 久久亚洲视频网 | 精品一区在线视频 | 九九热精品在线 | 国产一级中文字幕 | 精品乱码久久久久 | 亚洲国产精品久久久 | 香蕉久久久| 久久精品国产亚洲7777 | 久久久久久久久久久国产精品 | 一区二区三区在线播放视频 | 鲁久久| 欧美成网站 | 91色综合综合热五月激情 | 中文日韩在线视频 |