質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

453閲覧

java ExecutorServiceについて

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

3クリップ

投稿2018/10/15 22:09

スレッドの勉強をしています。
スレッドの作成・実行には
1.Threadクラスのサブクラスを定義し、start()メソッドの使用
2.Runnableインタフェースを実装し、start()メソッドの使用
3.ExecutorServiceの使用(Executorインタフェースのexecute()メソッドの使用)
の3通りがあるかと思います(ほかにもあるのかな?)。

これら3通りの違いについてわからないことがあります。
「1・2」については、排他制御(Synchronized)、同期制御(wait(),notify(),notifyAll())のサンプルコードが参考書(JavaSE Gold)には掲載されています。
「3」については、掲載されていませんが、排他制御・同期制御を行う機会はないと理解してよろしいのですか?

また、「1・2」と「3」の違いは、
・明示的にスレッドを作成する代わりに使用。
(new Thread(new(RunnableTask())).start()を呼び出す代わりに、execute()メソッドの使用
のみかとおもいますが、他に何かあるのですか?

抽象的な質問で申し訳ございませんがご教授よろしくお願いいたします。

A-pZ, webarata3👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Thread、Runnableに関しては戻り値がVoidという問題がありました。
ExecutorServiceは上記の問題の解決策として、戻り値を指定できるようになりました。
Threadを単純な並列実行で利用するのであればExecutorServiceは必要ありませんが、並列実行、同期、それぞれのThreadの処理結果を複合して結果を出す必要があるのであればExecutorServiceはとても有用です。

投稿2018/10/23 11:48

planetcoline

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/23 20:45

回答ありがとうございます。 これからも勉強してしっかり理解していきたいです。
guest

0

ベストアンサー

ExecutorServiceは、java.util.concurrent パッケージで提供されるインタフェースです。java.util.concurrentパッケージは、Threadクラスと比べると、スレッドプール、一定時間経過後に実行、周期的に実行、スレッドの実行結果の取得など様々な機能が追加されています。

排他制御は、java.util.concurrent.locksパッケージで、単純なロックの他、ReaderWriterLock、ReentrantLockなど複数種類のロックが提供されています。

その他、並行処理用のコレクション、アトミック処理など様々な機能が提供されています。

投稿2018/10/20 12:52

boochnich

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/20 14:43

ありがとうございます。 質問してから色々調べたり、勉強したりしているうちに理解できるようになってきました。 また何か新たな問題がありましたら質問させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問