激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java互斥鎖簡單實例

Java互斥鎖簡單實例

2019-12-26 13:17優雅先生 JAVA教程

這篇文章主要介紹了Java互斥鎖,較為詳細的分析了java互斥鎖的概念與功能,并實例描述了java互斥鎖的原理與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java互斥鎖。分享給大家供大家參考。具體分析如下:

互斥鎖,常常用于多個線程訪問獨占式資源,比如多個線程同時寫一個文件,雖然互斥訪問方式不夠高效,但是對于一些應用場景卻很有意義

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//沒有互斥鎖的情況(可以自己跑跑看運行結果):
public class LockDemo {
 
// private static Object lock = new Object();
// static確保只有一把鎖
  private int i = 0;
  public void increaseI() {
//   synchronized (lock) {
      for(int k=0;k<10;k++) { // 對i執行10次增1操作
        i++;
      }
      System.out.println(Thread.currentThread().getName() + "線程,i現在的值:" + i);
//   }
  }
  public static void main(String[] args) {
    LockDemo ld = new LockDemo();
    int threadNum = 1000;
    // 選擇1000個線程讓結果更加容易觀測到
    MyThread[] threads = new MyThread[threadNum];
    for(int i=0;i<threads.length;i++) {
      threads[i] = new MyThread(ld);
      // 所有線程共用一個LockDemo對象
      threads[i].start();
    }
  }
}
class MyThread extends Thread {
  LockDemo ld;
   
  public MyThread(LockDemo ld) {
    this.ld = ld;
  }
  public void run() {
    ld.increaseI();
  }
}
//加上互斥鎖以后:
public class LockDemo {
  private static Object lock = new Object();
  // static確保只有一把鎖
  private int i = 0;
  public void increaseI() {
    synchronized (lock) {
      for(int k=0;k<10;k++) {
      // 對i執行10次增1操作
        i++;
      }
      System.out.println(Thread.currentThread().getName() + "線程,i現在的值:" + i);
    }
  }
  public static void main(String[] args) {
    LockDemo ld = new LockDemo();
    int threadNum = 1000;
    // 選擇1000個線程讓結果更加容易觀測到
    MyThread[] threads = new MyThread[threadNum];
    for(int i=0;i<threads.length;i++) {
      threads[i] = new MyThread(ld);
      // 所有線程共用一個LockDemo對象
      threads[i].start();
    }
  }
}
class MyThread extends Thread {
  LockDemo ld;
  public MyThread(LockDemo ld) {
    this.ld = ld;
  }
  public void run() {
    ld.increaseI();
  }
}

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费国产成人高清在线看软件 | 国产午夜免费福利 | 久久吊| 性感美女一级毛片 | 欧美a视频 | 成人一级在线 | 成人毛片100部免费观看 | 色av成人天堂桃色av | 色就色 综合偷拍区91网 | 91av亚洲| 欧美成年私人网站 | 欧美激情性色生活片在线观看 | 精品一区二区三区免费看 | 国产精品久久久网站 | 国产精品国产成人国产三级 | 毛片在哪看 | 久久中文免费 | av成人在线观看 | 一级黄色免费 | 成片免费大全 | 国产精品手机在线亚洲 | 精国品产一区二区三区有限公司 | 免费一区区三区四区 | 黄色午夜剧场 | 激情免费视频 | 欧美a在线播放 | 91福利国产在线观一区二区 | 成人午夜激情视频 | 欧美xxxxx视频| 一级黄色在线观看 | 91不雅视频 | 午夜小视频免费观看 | 中文在线日韩 | 中文字幕在线第二页 | 久久影院国产精品 | 国产高潮好爽受不了了夜色 | av黄色片网站 | 久久免费视频在线 | 久久99国产精品视频 | 中文字幕在线网站 | 欧美片a |