2017-02-12 11 views
0

を開始する前に、予想通り、第二のスレッドが終了する第一のスレッドを待っている動作しません。 私は何がしたいことは、私の2つのスレッドが同時に開始していないということですそれが始まる前にやらなければならないことを他の人が終えるのを待ちます。ここでは、コードです:マルチスレッドは、私は、理解することは簡単な作ります

public class MyClass extends Activity{ 
    MediaPlayer player; 
    int timeToPause; 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mylayout); 

     final Runnable updateLyrics = new Runnable() { 
      @Override 
      public void run() { 
       while(player.isPlaying()){ 
        if(inside(player.getCurrentPosition(), lyricsBegin[index], lyricsEnd[index])){ 
         updateLyrics(lyrics[index]); 
        } 
       } 
      } 
     }; 
     Runnable pausePlayer = new Runnable() { 
      @Override 
      public void run() { 
       while(player.isPlaying()){ 
        if(player.getCurrentPosition()/1000 == timeToPause){ 
         player.pause(); 
        } 
       } 
      } 
     }; 
     Thread threadUpdate = new Thread(updateLyrics); 
     Thread threadPause = new Thread(pausePlayer); 
     threadUpdate.start(); 
     threadPause.start(); 
    } 
} 

機能playerの現在位置がbeginendの間にある場合inside(int current, int begin, int end)チェック、timeToPauseplayerあなたがすることはできません

+0

質問は何をすべき揮発性? *スレッドが同時に起動しないことを意味しますか?期待される出力が何であり、どんな出力が得られているのかを明確にしてください!関連するすべてのコードも表示してください。 'lecteur.pause();'が何をするのかはわかりません。 '講師 'クラスを教えてください。 – CKing

+0

私は "threadChanson"と "threadPause"を同時に開始しますが、 "threadChanson"が起動してから "threadPause"が開始する前に終了するのを待っています。 –

+2

私はあなたを賞賛するためにupvoted問題をはっきりと記述しようとする。あなたの質問に関連するコード部分を持たせることによって。しかし、理解してください:あなたは初心者です。あなたは*基本*の質問があります。あなたが今質問することができる何か*が前にここで尋ねられていると仮定することは、**非常に**安全です。そして答えた。ですから、次回は**先行研究**に真剣な時間を費やしてください。それは私があなたの質問を読むのにかかったよりも "重複した質問"をGoogleを使用して見つけることよりも時間がかかりました... – GhostCat

答えて

2

を一時停止する必要がある特定の時間です。実際のスレッドは、OSスケジューラに依存します。あなたは何ができるか

はRUNNABLEすることの両方の状態を待つことです。その後、同期フラグを使用してそれらを実行させることができます。アトミック変数やトリック

+0

おかげでお返事を、私は私が評判に –

+0

し、それらを学ぶ必要があります!ない皆はとても礼儀正しいです: - }そして、その答えを受け入れることであろう多くの評判を収集するための最初のステップ@KevinRandriajaoson –

+0

おかげで15を得ることができますときに私はあなたの答えを投票ます – efekctive

関連する問題