スレッドを複数回起動しようとしています。しかし、私はそれが可能ではないことを読んでいます。なぜなら、そのためのIllegalThreadStateExceptionを取得するからです。 Iamは次のことをしようとしています。私はnスマートフォンがあります。私はアプリの自動テストをしたいと思います。テストは並列で、デバイスごとに1つのアプリケーションになります。それを解決するための任意のアイデア?私のコードはここにありますか?1つのスレッドで2つ以上の開始
Semaphore smartphones = new Semaphore(androidComponents.size());
Thread evaluationProcess = new Thread() {
public void run() {
try {
smartphones.acquire();
[CODE FOR TESTING]
smartphones.release();
}
};
while (!evaluationCompleted(apps)) {
evaluationProcess.start();
while (smartphones.availablePermits() == 0) ;
}
既に実行中のスレッドを開始しようとしています。それは定義によっては機能しません。 Threadクラスやオブジェクトをスレッドコンセプトと混同しているかもしれませんか? – Sentry
さて、このRunnableインスタンスから1つのRunnableインスタンスと複数のThreadインスタンスを作成します。また、何か起こるのを待つためにビジーループを使用しないでください。 –
エグゼキュータのプールは、ベアスレッドを使用するよりも優先されるべきです。新しい並行性パッケージには理由があります。 – duffymo