2016-04-08 4 views
1

私は以下のプログラムを使ってメールを送信していますが、これは現在私が開発した簡単なプログラムです。私はこの5つの異なるスレッドが独立して私のこのプログラムをトリガーする必要があるexecutorframeworkを使用して並列実行することができますが、これらの5つの異なるスレッドは同時にトリガーする必要があります並列処理で異なるスレッドで同時にメールを送るプログラムを作成する

5つの異なるスレッドt1、t2、t3、t4とt5それらのすべてが独立してメイン(@)が現在儀式を呼び出しているが、同時に私の機能を打つべきである。

私のJavaコード

public class SSendEmail { 

    public static void main(String [] args) throws Exception, IOException, Exception{ 

     String smtpHost = "xxx"; 
     String mailSmtpPort = "000"; 
     String mailTo[] = {"[email protected]" }; 
     String mailCc[] = {"[email protected]" }; 






     xxsendmail(mailTo, mailCc, "sendername", 
       "testsubject.", "testsubject..", smtpHost , mailSmtpPort); 


    } 

答えて

0

あなたはScheduledExecutorServiceを使用して、このように呼び出すと思います。

ScheduledExecutorService exec = Executors.newScheduledThreadPool(amount); 
for (int i = 0; i < amount; i++) { 
    exec.schedule(yourMailSendingRunnable, delay, TimeUnit.MILLISECONDS); 
} 

あなたはあなたのニーズを考慮してamountyourMailSendingRunnabledelayを交換する必要があります。

+0

クイックレスポンスがありましたら、私のコードをそれに変換することができれば幸いです。私は5つの異なるスレッドを望んでおり、すべてのスレッドは同時にメソッドxxsendmailを呼び出しています。 – sss

0

あなたの唯一の要件は、5つのスレッドが同時動作するはずということである限り、あなたはこのような何かで行われています。

public class SSendEmail implements Runnable { 

    public static void main(String [] args) throws Exception, IOException, Exception{ 

     for(int i=0;i<5;i++) { 
      new Thread(new SSendMail()).start(); 
     } 
    } 

    public void run() { 

    String smtpHost = "xxx"; 
    String mailSmtpPort = "000"; 
    String mailTo[] = {"[email protected]" }; 
    String mailCc[] = {"[email protected]" }; 

    xxsendmail(mailTo, mailCc, "sendername", 
      "testsubject.", "testsubject..", smtpHost , mailSmtpPort); 
    } 
} 

より多くの制御が必要なときは、ExecutorServiceのを使用します。例えば。 ThreadPooleExecutor新しいスレッドを継続しているのに同時実行スレッドの数を制限しますが、同時に実行するスレッド数を例えば10スレッドに制限する必要があります。

+0

ありがとうと思いますが、5つの独立したスレッドがxxsendmailという名前のメソッドを同時に呼び出す必要があります。上記のコードは、5つの独立したスレッドがxxsendmailという名前のメソッドをsimentously呼び出すように助言してください。 – sss

+0

@sss:Tryピーターのコードとあなた自身のために参照してください。私はあなたの電子メールプロバイダがあなたを電子メールスパマーとしてブロックしないことを願っています。 –

+0

@Gilbert私たちはテストメールボックスをセットアップしましたので、私の唯一の懸念はすべてのスレッドが独立しているべきだということを心配する必要はありません。同時にすべてのメソッドを呼び出すべきです – sss

関連する問題