いくつかの時間前に対象が、繰り返し出力をマルチスレッドのJava ABACを完了するために必要とされる、スレッドAが値出力Aは、B出力のみスレッドBは、C出力のみCスレッド必要
私を達成しようと行くに切り替えるには、Javaへの可能性が低いです、
その夜の後1時間以上を変更し、最終的に完成し、だけでなく、理解するための知識を補完します。
パッケージメイン インポート( 「FMT 」 「同期」 ) VaRのWG sync.WaitGroupの VaRの n個のint型 のvar chAの=作る(ちゃんint型) VAR chBの=作る(ちゃんint型) VAR CHC =メイク(ちゃんint型) FUNCのメイン(){ fmt.Scan( &N) wg.Add(1)// 増加処理タスクは、 (n)は、送信行きます wg.Wait()// 利用time.Sleepの恥ずかしさを回避しつつwg.Done番号()操作は、wg.Add(数の増加)に等しくなるまで、プロセスの終了を待ちます } FUNCセンド(n個の整数){ 行く(CHA) 行くB(chBの) 行くC(CHC) chAの < - 1 } FUNC(チャンCのINT ){ ためには、 { // 走行に保つことである IFを COUNT <=、= <-C:COUNT N- { fmt.Print(" A " ) であれば(カウント+ 1)%4!= 0 { chBの < -カウント+ 1 } 他{ CHC < -数+ 1 } } 他{ wg.Done() リターン } } } FUNCのB(CちゃんINT ){ 用{ 場合カウント:= <-c。カウント<= N { fmt.Print(" B " ) chAの < -カウント+ 1 } 他{ wg.Done() リターン } } } FUNC C(CちゃんINT ){ 用{ 場合カウント:= <-c。カウント<= N { fmt.Print(" C " ) chAの < -カウント+ 1 } 他{ wg.Done() リターン } } }