一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - JAVA教程 - Java互斥鎖簡(jiǎn)單實(shí)例

Java互斥鎖簡(jiǎn)單實(shí)例

2019-12-26 13:17優(yōu)雅先生 JAVA教程

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

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

互斥鎖,常常用于多個(gè)線程訪問獨(dú)占式資源,比如多個(gè)線程同時(shí)寫一個(gè)文件,雖然互斥訪問方式不夠高效,但是對(duì)于一些應(yīng)用場(chǎng)景卻很有意義

?
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
//沒有互斥鎖的情況(可以自己跑跑看運(yùn)行結(jié)果):
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++) { // 對(duì)i執(zhí)行10次增1操作
        i++;
      }
      System.out.println(Thread.currentThread().getName() + "線程,i現(xiàn)在的值:" + i);
//   }
  }
  public static void main(String[] args) {
    LockDemo ld = new LockDemo();
    int threadNum = 1000;
    // 選擇1000個(gè)線程讓結(jié)果更加容易觀測(cè)到
    MyThread[] threads = new MyThread[threadNum];
    for(int i=0;i<threads.length;i++) {
      threads[i] = new MyThread(ld);
      // 所有線程共用一個(gè)LockDemo對(duì)象
      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++) {
      // 對(duì)i執(zhí)行10次增1操作
        i++;
      }
      System.out.println(Thread.currentThread().getName() + "線程,i現(xiàn)在的值:" + i);
    }
  }
  public static void main(String[] args) {
    LockDemo ld = new LockDemo();
    int threadNum = 1000;
    // 選擇1000個(gè)線程讓結(jié)果更加容易觀測(cè)到
    MyThread[] threads = new MyThread[threadNum];
    for(int i=0;i<threads.length;i++) {
      threads[i] = new MyThread(ld);
      // 所有線程共用一個(gè)LockDemo對(duì)象
      threads[i].start();
    }
  }
}
class MyThread extends Thread {
  LockDemo ld;
  public MyThread(LockDemo ld) {
    this.ld = ld;
  }
  public void run() {
    ld.increaseI();
  }
}

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩一区二区三区久久 | 国产精品久久久久久久牛牛 | 99热这里有免费国产精品 | 久久久GOGO无码啪啪艺术 | 精品综合久久久久久97超人 | 午夜国产精品影院在线观看 | 美女脱一光二净的视频 | 77成人影视 | 久久青青草原精品国产软件 | 翁熄性放纵交换300章 | 成人免费视频一区 | 日韩欧美高清视频 | 天天干天天爽天天操 | 青青青在线视频播放 | 美女被免费视频 | 免费一级欧美片在线观免看 | 亚洲 综合 欧美在线视频 | 亚洲欧美日韩久久一区 | 五月婷婷丁香在线视频 | 国产精品久久国产三级国电话系列 | 99视频全部看免费观 | 天天乐影院| 国产东北3p真实在线456视频 | 第一次破女视频国产一级 | 国产成人在线播放 | 93版高校教师 | 色偷偷亚洲男人 | ck7788免费视频 | 日韩欧美一卡二区 | 国产一区二区免费视频 | 9自拍视频在线观看 | 国产青草亚洲香蕉精品久久 | 国产亚洲精品自在线亚洲情侣 | 亚洲国产美女精品久久久久 | 性xx色3d动画xx无尽 | 国产青草视频在线观看免费影院 | 日韩欧美中文字幕出 | 五月婷婷在线免费观看 | 久久强奷乱码老熟女 | 日韩一级片在线免费观看 | 日本高清动作片www欧美 |