国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

兩個線程交替輸出1~20(使用條件鎖)

MarvinZhang / 2078人閱讀

摘要:第一個線程,從開始如果另一個線程等待,則喚醒對方之后,自己等待如果另一個線程等待,則喚醒對方之后,自己等待使用條件鎖最重要的是,自己等待之前,一定要喚醒其他線程,并且記住要釋放鎖。

public class testThread {

   public static void main(String[] args) {

      ReentrantLock lock=new ReentrantLock();
      Condition one =lock.newCondition();
      Condition two=lock.newCondition();
      //第一個線程,從1開始
      new Thread(new Runnable() {
         @Override
         public void run() {
            int i = 1;
            while (i<=20){
               lock.lock();
               System.out.print("
thread--1----:"+i);
               try {
               //如果另一個線程等待,則喚醒對方之后,自己等待
                  two.signalAll();
                  one.await();
                  i=i+2;
               } catch (InterruptedException e) {
                  e.printStackTrace();
               }
               finally {
                  lock.unlock();
               }
            }
         }
      }).start();
      new Thread(new Runnable() {
         @Override
         public void run() {
            int i = 2;
            while (i<=20){
               lock.lock();
               System.out.print("
thread--2----:"+i);
               try {
               //如果另一個線程等待,則喚醒對方之后,自己等待
                  one.signalAll();
                  two.await();
                  i=i+2;
               } catch (InterruptedException e) {
                  e.printStackTrace();
               } finally {
                  lock.unlock();
               }
            }
         }
      }).start();
   }
}

使用條件鎖最重要的是,自己等待之前,一定要喚醒其他線程,并且記住finally要釋放鎖。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70952.html

相關文章

  • 線程編程:wait, notify, join, yield都有啥用?

    摘要:通知任一一個進入等待狀態的線程,通知所有讓調用線程阻塞在這個方法上,直到的線程完全執行完畢,調用線程才會繼續執行。通知調度器,主動讓出對的占用。 多線程在開發知識中是一個很重要的部分,然而實際生產中卻很少遇到真正需要自己去處理多線程編程里的那些復雜細節和問題,因為很多時候,都有一套架構或者一些框架幫大部分業務程序員隱藏了多線程的細節,大多時候只需要簡單的實現各種業務邏輯即可。 今天來理...

    lovXin 評論0 收藏0
  • 第二章 線程安全性

    摘要:第二章線程安全性線程安全性的理解定義某個類的行為與其規范完全一致原子性競態條件理解當操作的正確的結果取決于多個線程的交替執行時序,就會發生競態條件。 第二章 線程安全性 2.1 線程安全性的理解 定義:某個類的行為與其規范完全一致 2.2 原子性 2.2.1 競態條件 理解:當操作的正確的結果取決于多個線程的交替執行時序,就會發生競態條件。常見的競態條件類型是先檢查后執行,首先觀察到某...

    fsmStudy 評論0 收藏0
  • JVM筆記-13

    摘要:不可變如絕對線程安全就是滿足并發編程實戰中對線程安全的定義在中標注自己是線程安全的類,大都不是絕對的線程安全。如的和二實現線程安全的方法互斥同步互斥是因同步是果互斥是方法同步是目的。 一.到底什么叫線程安全:java并發編程實戰中對線程安全的定義是:當多個線程訪問一個對象時,如果不用考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進行任何其他的協調操作,...

    cyixlq 評論0 收藏0
  • JCIP閱讀筆記之線程安全性

    摘要:大多數都是線程安全的,所以極大降低了在實現線程安全性的復雜性。只有在處理請求需要保存一些信息的情況下,線程安全性才會成為一個問題。雖然這種方式可以保證線程安全,但是性能方面會有些問題。 本文是作者在閱讀JCIP過程中的部分筆記和思考,純手敲,如有誤處,請指正,非常感謝~ 可能會有人對書中代碼示例中的注解有疑問,這里說一下,JCIP中示例代碼的注解都是自定義的,并非官方JDK的注解,因此...

    nanchen2251 評論0 收藏0
  • 并發模型:線程

    摘要:文章結構來自七周七并發模型互斥和內存模型創建線程這段代碼創建并啟動了一個實例,首先從開始,函數的余下部分一起并發執行。在鎖定狀態下,某些線程擁有鎖在非鎖定狀態下,沒有線程擁有它。 并發&并行 并發程序含有多個邏輯上的獨立執行塊,他們可以獨立的并行執行,也可以串行執行。并行程序解決問題的速度比串行程序快的多,因為其可以同時執行整個任務的多個部分。并行程序可能有多個獨立執行塊,也可能只有一...

    JasinYip 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<