私の名前はGolovach Ivanです。小さな教育会社を率いています。 オンラインプログラミングコースを実施しています 。
オンライン教育プラットフォームudemy.comでScala for Java Developersコースも教えています(Coursera / EdXに似ています)。
コミュニティの意見を聞きたい
- コースプログラム「Javaでのマルチコアプログラミング」
- コースの文学
コースの概要:
コースプログラム
モジュール#1:ハードウェアと数学、プリミティブの間
- 「鉄」
- 最新のプロセッサ、キャッシュのアーキテクチャ
- メモリバリア、読み取り/書き込みの並べ替え、キャッシュコヒーレンスプロトコル
- 「数学」/ Javaメモリモデル
- 新しいJMM-指紋の説明
- Thread.start()/ join()、volatile、final、CAS、lazySet、weakCompareAndSet、jucからのクラスの保証
- 新しいJMM形式仕様:エッジの前に起こる、コミットメントプロトコル
- プリミティブ/コンストラクト
- ダブルチェックロック(破損)、安全な公開
- synchronized + Object.wait()/ notify()/ notifyAll()-HotSpotに実装されている使用方法、保証内容
- 独自の実装:Dekkerのアルゴリズム、Petersonのアルゴリズム、Lamport Bakery algotithm
モジュール#2:java.util.concurrent(Java 5)
- マルチスレッドコレクション
- BlockingQueue-s
- ConcurrentMap-s:ConcurrentHashMap、ConcurrentSkipListMap
- コピーオンライト構造:CopyOnWriteArrayList、CopyOnWriteArraySet
- 「シンクロナイザー」
- ロック、条件、ReentrantLock、ReentrantReadWriteLock、セマフォ
- CountDownLatch、CyclicBarrier、Exchanger、Phaser
- スレッドプール+未来
- エグゼキューター、ExecutorService、ThreadPoolExecutor、ScheduledExecutorService、ScheduledThreadPoolExecutor
- callable、future、jucFutureに欠けているもの
- jucコア:AbstractQueuedSynchronizer + LockSupport
- jucAQS内部デバイス
- jucAQS + LockSupportでプリミティブを構築する
モジュール#3:Fork / Join Framework(java 7)+ Parallel Streams(Java 8)
- フォーク/結合フレームワーク
- 再帰的並列化のスタイルで問題を解決します
- イディオムと典型的なタスク
- フォーク/参加フレームワーク-内部にあるもの
- 並列ストリーム
- Java 8-java.util.Streamを介したデータの操作
- java.util.Stream.parallel()-その「内部」
モジュール#4:「非古典的なアーキテクチャ」
- ノンブロッキングアルゴリズム
- jucatomicパッケージ:AtomicXXX、AtomicXXXArray、AtomicXXXFieldUpdater、AtomicStampedReference、AtomicMarkableReference
- 分類:ブロッキング、ノンブロッキング、ロックフリー、ウェイトフリー、障害物なし
- 基本データ構造のノンブロッキング実装:スタック、キュー、デキュー、ハッシュテーブル、ツリーマップ
- メッセージングベースのアーキテクチャ(Akka)
- あっか図書館
- 基本的なテンプレート、典型的なアーキテクチャ
- メッセージングベースのアーキテクチャの長所と短所
- ソフトウェアトランザクションメモリ(Clojure)
- clojure.langライブラリ*
- トランザクションメモリアーキテクチャの長所と短所
- 永続的なデータ構造
- 永続的なデータ構造の長所と短所
- 基本的なデータ構造の永続的な実装:スタック、キュー、デキュー、ハッシュテーブル、ツリーマップ
- ライブラリ:clojure.lang。*、pcollections
文学
本
- ブライアンゲッツ他、 「Java並行性の実践」
- Doug Lea、 「Javaでの並行プログラミング:設計原則とパターン」
- Maurice Herlihy、Nir Shavit、 「マルチプロセッサプログラミングの技術」
記事
- マーティントンプソンなど、 「ディスラプター:同時スレッド間でデータを交換するための境界キューの高性能な代替品」
- Ulrich Drepper、 「すべてのプログラマーがメモリについて知っておくべきこと」
- ダグリー、 「コンパイラライター向けJSR-133クックブック」
- ブライアンゲッツ、 「ダブルチェックロック:賢いが壊れている」
- 「ダブルチェックロックが壊れています」宣言
- Jeremy Manson、Brian Goetz、 「JSR 133(Java Memory Model)FAQ」
- ダグリー、 「コンパイラライター向けJSR-133クックブック」
- ダグ・リー、 「java.util.concurrent Synchronizer Framework」
- ダグリー、 「Javaフォーク/参加フレームワーク」
ブログ
連絡先
Javaトレーニングをオンラインで行い( プログラミングコースはこちら) 、Java Coreコースの再設計の一環としてトレーニング資料の一部を公開しています 。 この記事では、視聴者の講義のビデオ録画をyoutubeチャンネルで見ることができます。おそらく、 チャンネルのビデオがより体系化されています 。
スカイプ:GolovachCourses
メール:GolovachCourses@gmail.com