秋季割引
CodeGym University
勉強
コース
タスク
アンケートとクイズ
ゲーム
ヘルプ
励ましのスケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
サクセスストーリー
アクティビティ
レビュー
サブスクリプション
ライトテーマ
レッスン
レビュー
会社紹介
開始
勉強を始める
今すぐ勉強をはじめる
クエストマップ
レッスン
すべてのクエスト
すべてのレベル
新しいスレッドの作成と開始
モジュール 2: Java コア
レベル 11、
レッスン 1
「こんにちは、アミーゴ! エリーがスレッドについて教えてくれました。私はスレッドをどのように操作するかを説明します。新しいスレッドを作成するには、次の手順を実行する必要があります。」 1) Thread オブジェクトを作成する 2)実行したいメソッドを渡します 3) 作成された Thread オブジェクトの start メソッドを呼び出します。 次の例を考えてみましょう。 コード 説明 class Printer implements Runnable
健康的な睡眠
モジュール 2: Java コア
レベル 11、
レッスン 2
「こんにちは、アミーゴ! 今日は Bilaabo が、スレッドを扱うときに使用する最も興味深いメソッド、 sleepについてお話します。sleepメソッドはThread クラスの静的メソッドとして宣言されます。つまり、どのオブジェクトにもアタッチされません。この方法は、プログラムをしばらくの間「スリープ状態」にすることです。その仕組みは次のとおりです。」 コード 説明 public static void main(String[] args)
スレッドの停止: 非公式バージョン
モジュール 2: Java コア
レベル 11、
レッスン 3
「こんにちは、アミーゴ! ここで、あなたがすでに抱いているか、あるいはすぐに抱くであろう興味深い質問があります。実行中のスレッドを停止するにはどうすればよいですか?」 ユーザーがプログラムに「インターネットからファイルをダウンロード」するように指示したとします。メインスレッドは、このジョブ用に別の子スレッドを作成し、ファイルをダウンロードするために必要なすべてのアクションを含む run メソッドを持つオブジェクトをそれに渡します。 しかし、ユーザーは突然考えを変えます。彼はフ
スレッドの停止: 正式版
モジュール 2: Java コア
レベル 11、
レッスン 4
「こんにちは、アミーゴ! エリーのキャンセルのアイデアは素晴らしかったと認めざるを得ません。」 「はい。」 「実際、同様のものがThreadクラスに存在します。変数だけがisCancelと呼ばれていません。 isInterruptと呼ばれます。そして、スレッドを停止するために使用されるメソッドはcancel()ではなく、 interrupt()です。」 "本当?" 「はい。見てください。」 コード 説明 class Clock implements Runnable
レベルに応じた追加レッスン
モジュール 2: Java コア
レベル 11、
レッスン 5
マルチスレッド: Thread クラスのメソッド このレッスンでは、引き続きマルチスレッドについて説明します。Threadクラスと、そのいくつかのメソッドがどのように機能するかを見ていきます。 以前、クラスメソッドを勉強するときは、「メソッド名」→「メソッドが何をするのか」というように書くだけでした。Threadクラスのメソッドではそれはできません:) それらには、いくつかの例がなければ理解するのがほとんど不可能な、より複雑なロジックがあります。 記事の選択: 併用すると効果
マルチスレッドの問題: 共有リソースへのアクセス
モジュール 2: Java コア
レベル 12、
レッスン 0
「こんにちは、アミーゴ! 昨日はマルチスレッドの利点と利便性について話し合いました。今度は欠点を見てみましょう。残念ながら、それらは小さくありません。」 以前は、プログラムを、相互にメソッドを呼び出し合うオブジェクトのセットとして見てきました。ここで、すべてが少し複雑になります。プログラムは、複数の「小さなロボット」(スレッド) が内部を巡回し、メソッドに含まれるコマンドを実行するオブジェクトのセットに似ています。 この新しい解釈は最初の解釈を取り消すものではありません。これ
スレッドは独立していません! 同期しました!
モジュール 2: Java コア
レベル 12、
レッスン 1
「こんにちは、アミーゴ! 私たちは万能薬、つまりあらゆる病気を治す薬を持っています。すでに見たように、制御されていないスレッドの切り替えは問題です。」 「なぜスレッド自体が、いつ次のスレッドに切り替えるかを決定できないのでしょうか? やるべきことをすべて実行してから、「完了しました!」という合図を送ります。」 「スレッド自体にスイッチングの制御を許可すると、さらに大きな問題になります。コードの書き方が悪く、スレッドが決して CPU を放棄しないとします。昔は、これが仕組みでし
ローカル キャッシュ: マルチスレッドの問題。揮発性
モジュール 2: Java コア
レベル 12、
レッスン 2
「こんにちは、アミーゴ! 複数のスレッドが共有リソースに同時にアクセスしようとしたときに生じる問題についてエリーが話してくれたことを覚えていますか?」 "はい。" 「問題は、それだけではありません。別の小さな問題があります。」 ご存知のとおり、コンピューターには、データとコマンド (コード) が保存されるメモリーと、これらのコマンドを実行してデータを操作するプロセッサーがあります。プロセッサはメモリからデータを読み取り、変更し、メモリに書き戻します。計算を高速化するために、プ
譲歩(通行権を放棄する)
モジュール 2: Java コア
レベル 12、
レッスン 3
「こんにちは、アミーゴ! 今日は短いですが興味深いレッスンをします。 Thread クラスの静的メソッドであるyieldについて話します。」 エリーはすでに、プロセッサがスレッドを常に切り替えていると言いました。各スレッドには、クォンタムと呼ばれる小さなプロセッサ時間が割り当てられます。この時間が経過すると、プロセッサは別のスレッドに切り替えてコマンドの実行を開始します。を呼び出すと、Thread.yield()現在のスレッドのクォンタムを早期に終了できます。言い換えれば、プ
join — スレッドが終了するのを待っています
モジュール 2: Java コア
レベル 12、
レッスン 4
「こんにちは、アミーゴ! スレッドについての学習が大きく進歩しているようですね。」 「結局のところ、それほど難しくはありませんでした。」 それは素晴らしいことです!今日は簡単なレッスンで、トピックは結合方法です。 次の状況を想像してください。メインスレッドが、何らかのタスクを実行するために子スレッドを作成しました。時間が経ち、メインスレッドは子スレッドによって実行された作業の結果を必要とするようになりました。しかし、子スレッドはまだ作業を終えていません。メインスレッドは何をす
デッドロックとその原因
モジュール 2: Java コア
レベル 12、
レッスン 5
「こんにちは、アミーゴ!」 「今日はデッドロックとは何かについて説明します。」 「ねえ、あなたはすでにそのようなことについて私に話しました。」 「はい、そうしました。しかし今日はこのテーマについてさらに詳しく検討します。」 「最も単純なケースでは、デッドロックには 2 つのスレッドと 2 つのミューテックス オブジェクトが関係します。相互ロックは次の場合に発生します。」 A)各スレッドは両方のミューテックスを取得する必要があります。 B) 最初のスレッドは最初のミューテックス
デッドロックを回避するための戦略
モジュール 2: Java コア
レベル 12、
レッスン 6
「こんにちは、アミーゴ!」 「デッドロックを回避するためのいくつかの戦略についてお話したいと思います。」 「最良の戦略は、思慮深いアーキテクチャと、ロックをいつどのような順序で使用できる (ミューテックスを取得する) かを管理する一連のルールです。この問題に対する古典的なアプローチは、ロック階層を開発し、特定のロックを決して使用できないというルールを確立することです」他の特定のロックがすでに取得されている状態で取得されました。」 たとえば、ロックにはレベルが割り当てられている
さらに表示
1
...
17
18
19
20
21
...
35
Please enable JavaScript to continue using this application.