国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java concurrency之LockSupport_動力節(jié)點(diǎn)Java學(xué)院整理

Java concurrency之LockSupport_動力節(jié)點(diǎn)Java學(xué)院整理

2020-11-15 20:06skywang12345 Java教程

這篇文章主要為大家詳細(xì)介紹了Java concurrency之LockSupport的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

LockSupport介紹

LockSupport是用來創(chuàng)建鎖和其他同步類的基本線程阻塞原語。
LockSupport中的park() 和 unpark() 的作用分別是阻塞線程和解除阻塞線程,而且park()和unpark()不會遇到“Thread.suspend 和 Thread.resume所可能引發(fā)的死鎖”問題。
因為park() 和 unpark()有許可的存在;調(diào)用 park() 的線程和另一個試圖將其 unpark() 的線程之間的競爭將保持活性。

LockSupport函數(shù)列表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 返回提供給最近一次尚未解除阻塞的 park 方法調(diào)用的 blocker 對象,如果該調(diào)用不受阻塞,則返回 null。
static Object getBlocker(Thread t)
// 為了線程調(diào)度,禁用當(dāng)前線程,除非許可可用。
static void park()
// 為了線程調(diào)度,在許可可用之前禁用當(dāng)前線程。
static void park(Object blocker)
// 為了線程調(diào)度禁用當(dāng)前線程,最多等待指定的等待時間,除非許可可用。
static void parkNanos(long nanos)
// 為了線程調(diào)度,在許可可用前禁用當(dāng)前線程,并最多等待指定的等待時間。
static void parkNanos(Object blocker, long nanos)
// 為了線程調(diào)度,在指定的時限前禁用當(dāng)前線程,除非許可可用。
static void parkUntil(long deadline)
// 為了線程調(diào)度,在指定的時限前禁用當(dāng)前線程,除非許可可用。
static void parkUntil(Object blocker, long deadline)
// 如果給定線程的許可尚不可用,則使其可用。
static void unpark(Thread thread)

LockSupport示例

對比下面的“示例1”和“示例2”可以更清晰的了解LockSupport的用法。

示例1

 

?
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
public class WaitTest1 {
 
  public static void main(String[] args) {
 
    ThreadA ta = new ThreadA("ta");
 
    synchronized(ta) { // 通過synchronized(ta)獲取“對象ta的同步鎖”
      try {
        System.out.println(Thread.currentThread().getName()+" start ta");
        ta.start();
 
        System.out.println(Thread.currentThread().getName()+" block");
        // 主線程等待
        ta.wait();
 
        System.out.println(Thread.currentThread().getName()+" continue");
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
 
  static class ThreadA extends Thread{
 
    public ThreadA(String name) {
      super(name);
    }
 
    public void run() {
      synchronized (this) { // 通過synchronized(this)獲取“當(dāng)前對象的同步鎖”
        System.out.println(Thread.currentThread().getName()+" wakup others");
        notify();  // 喚醒“當(dāng)前對象上的等待線程”
      }
    }
  }
}

示例2

?
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
import java.util.concurrent.locks.LockSupport;
 
public class LockSupportTest1 {
 
  private static Thread mainThread;
 
  public static void main(String[] args) {
 
    ThreadA ta = new ThreadA("ta");
    // 獲取主線程
    mainThread = Thread.currentThread();
 
    System.out.println(Thread.currentThread().getName()+" start ta");
    ta.start();
 
    System.out.println(Thread.currentThread().getName()+" block");
    // 主線程阻塞
    LockSupport.park(mainThread);
 
    System.out.println(Thread.currentThread().getName()+" continue");
  }
 
  static class ThreadA extends Thread{
 
    public ThreadA(String name) {
      super(name);
    }
 
    public void run() {
      System.out.println(Thread.currentThread().getName()+" wakup others");
      // 喚醒“主線程”
      LockSupport.unpark(mainThread);
    }
  }
}

運(yùn)行結(jié)果:

main start ta
main block
ta wakup others
main continue

說明:park和wait的區(qū)別。wait讓線程阻塞前,必須通過synchronized獲取同步鎖。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 91久久精品国产91久久 | 久久久久久久久久一区二区 | 亚洲欧美另类久久久精品2019 | 在线看国产 | 中文字幕一区二区三区四区 | 欧美精品一 | 久久久一区二区精品 | 欧美 日韩 中文 | 日韩三级电影在线免费观看 | 精品视频在线播放 | 台湾一级特黄aa大片免费看 | 婷婷四房综合激情五月 | 亚洲精品成人 | 日韩精品一区二区三区精品av | 国产精品久久久久无码av | 亚洲欧美另类久久久精品2019 | av在线免费网址 | 91新视频 | 久久综合伊人77777蜜臀 | 凹凸日日摸日日碰夜夜爽孕妇 | 在线观看成人高清 | 欧美性猛交一区二区三区精品 | 亚洲一区二区三区视频 | 一区二区免费视频 | 黄色永久网站 | 亚洲国产中文字幕在线观看 | 激情欧美日韩一区二区 | 久久综合久久综合久久 | 激情久久av一区av二区av三区 | 国产亚洲人成网站在线观看 | 在线高清av | 综合久久久| 久久婷婷欧美 | 中文在线一区二区 | 亚洲精品一区二区三区蜜桃久 | 精品国产乱码久久久久久牛牛 | 99热在线播放 | 国产精品99久久久久久www | 久久中文字幕一区二区 | 69久久久久久| 国产美女一区二区三区 |