Java 多執行緒連續列印ABC

2021-08-18 19:46:55 字數 1042 閱讀 3428

1. 利用synchronized

思路: 

列印a時,必須先拿到 b,c鎖, 列印完了之後,釋放a鎖,然後列印b的執行緒拿到a鎖後就可以列印b,依次迴圈。

public class mythreadprinter implements runnable 

try catch (interruptedexception e) }}

}public static void main(string args) throws exception

}

2.利用lock

public class mythreadprinter_lock 

public class printera implements runnable catch (interruptedexception e)

}system.out.println("第"+i+"次列印"+cur_name);

cur_name = "b";

conditionb.signal();

}catch (exception e)finally }}

}public class printerb implements runnable catch (interruptedexception e)

}system.out.println("第"+i+"次列印"+cur_name);

cur_name = "c";

conditionc.signal();

}catch (exception e)finally }}

}public class printerc implements runnable catch (interruptedexception e)

}system.out.println("第"+i+"次列印"+cur_name);

cur_name = "a";

conditiona.signal();

}catch (exception e)finally }}

}}

JAVA多執行緒列印ABC

多執行緒中乙個很有名的例題就是多執行緒列印 abc,要求用三個執行緒,分別是列印 a,列印 b,列印 c,輪流喚醒和鎖死,最終列印出10組 abc。created by 123 on 2016 8 30.public class printabc 將列印a,列印b,列印c分別列為三個互斥的方法,寫在...

java 多執行緒列印ABC

方法千千中,開始看到這個,我立馬想到了cyclicbarrier,能讓abc在列印在一組,可是控制不了abc列印的順序 後來自己用了乙個最簡單的synchronize的迴圈實現了,可以感覺沒什麼成就感 package dirk.zhang public class printabc class th...

java 多執行緒列印ABC

方法千千中,開始看到這個,我立馬想到了cyclicbarrier,能讓abc在列印在一組,可是控制不了abc列印的順序 後來自己用了乙個最簡單的synchronize的迴圈實現了,可以感覺沒什麼成就感 package dirk.zhang public class printabc class th...