SlideShare a Scribd company logo
Concurrent Programming
in JavaScript
SEINO Yoshinori
Sapporo.js
自己紹介
•情野 吉紀
•職業 デバッガー
•プログラミング好き
•趣味プログラミングしない
•JavaScriptほとんど書かない
おしながき
•導入
•カタログ
•未来
•導入
•並行プログラミングカタログ
•未来
メリット
•なんでしょう?
•JavaScript 1スレッドしかないよね?
JSスレッドモデル
•シングルスレッドのように振る舞う
•デッドロック、競合状態と無縁
•WebWorkerについては後でね
•サイ本6版 p.352
• 13.3.3 クライアントサイドJavaScriptスレッドモデル
メリット
• 複数の処理を並行に実行できると
• scriptロード
• ユーザ入力応答
• 通信
• DOM操作
• などを、待機時間なしに実行できる
デメリット
•なんでしょう?
デメリット
•キュータスク処理時間は50msec以下
•続・ハイパフォーマンスWebサイト
•メンテナンス性の低下
•デバッグの難化
•実行順序が非決定的
どうにかならないの?
•導入
•並行プログラミングカタログ
•未来
カタログ
•コールバックネスト
•setTimeoutイディオム
•Web Workers
•node.jsスタイルAPI
•Promise/A(+)
•Flow.js ( NOT Flow-js )
コールバックネスト
•ユースケース
•非同期API
setTimeoutイディオム
•ユースケース
•ユーザ応答性を高めるために処理を
分割したい
• 続・ハイパフォーマンスWebプログラミング
• http://please-sleep.cou929.nu/using-javascript-timer-for-ui-
performance.html
Web Workers
•ユースケース
•ユーザ応答性を高めるために処理を
分割したい
•とりわけ重い処理(100ms over)を並
行処理したい
•Web Workers
node.jsスタイルAPI
•ユースケース
•node.jsアプリケーションを作る際に
書く
•http://dev.classmethod.jp/server-
side/asyn/
Promise/A(+)
•ユースケース
•非同期API間でデータを引き継ぐ場合
•例外処理が必要な場合
Flow.js
•ユースケース
•処理フローがグラフ構造のように複
雑になる場合
•
未来
• Web Workers
• Task.js - http://taskjs.org/
• generators + promises = tasks
• Fiber - https://npmjs.org/package/fibers
• Actor -
参考文献
•JavaScript 第6版
次回予告
•Io : Prototype Programming
Language
•JavaScript: Power of Simplicity
Part2 Functional Programming

More Related Content

PDF
JavaScriptと共に歩いて行く決意をした君へ
PDF
Getting start with knockout.js
PDF
Vue.js ハンズオン資料
PDF
jQueryを中心としたJavaScript
PDF
究極にして至高のWAF
PDF
Flux react現状確認会
PDF
JavaScript 研修
PDF
まだ DOM 操作で消耗してるの?
JavaScriptと共に歩いて行く決意をした君へ
Getting start with knockout.js
Vue.js ハンズオン資料
jQueryを中心としたJavaScript
究極にして至高のWAF
Flux react現状確認会
JavaScript 研修
まだ DOM 操作で消耗してるの?

What's hot (17)

PDF
a-blogcsm な寺子屋 2 in Okazaki
PDF
なぜ人は必死でjQueryを捨てようとしているのか
PDF
React+fluxを導入した話
PDF
Cssアニメーションとその制御
PDF
a-sap09「a-blog cmsとWordPress」
PDF
軽量フレームワークNancy
PDF
( ゚∀゚)o彡° Flux! Flux!
PDF
Learning jQuery
PDF
Gulp De wordpress in WordBench
PPTX
webアプリケーションフレームワークの話
PDF
E2E CSS Testing at HTML5 Conference 2016
PDF
svelte と tailwind で始めるフロントエンド開発
PDF
WordPress ユーザーのための a-blog cms 入門
PDF
Javaな人が気を付けるべきJavaScriptコーディングスタイル
PDF
WebフレームワークXSS対策の自動化
PDF
Ember コミュニティとわたし
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
a-blogcsm な寺子屋 2 in Okazaki
なぜ人は必死でjQueryを捨てようとしているのか
React+fluxを導入した話
Cssアニメーションとその制御
a-sap09「a-blog cmsとWordPress」
軽量フレームワークNancy
( ゚∀゚)o彡° Flux! Flux!
Learning jQuery
Gulp De wordpress in WordBench
webアプリケーションフレームワークの話
E2E CSS Testing at HTML5 Conference 2016
svelte と tailwind で始めるフロントエンド開発
WordPress ユーザーのための a-blog cms 入門
Javaな人が気を付けるべきJavaScriptコーディングスタイル
WebフレームワークXSS対策の自動化
Ember コミュニティとわたし
SIROK技術勉強会 #1 「Reactってなんだ?」
Ad

Similar to Concurrent Programm in JavaScript (20)

PDF
JavaScriptトレンド総括(2014)
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
PDF
Play jjug2012spring
PDF
多分モダンなWebアプリ開発
PDF
WebStormでできること
PPTX
Jsf アプリ作ったった
PDF
React es2015
PDF
JSer Class #2
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
PDF
Gruntの罪と罰
KEY
Rdbms起点で考えると見えない世界 okuyama勉強会
PDF
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
PDF
javascript を Xcode でテスト
PDF
Javaで1から10まで書いた話(sanitized)
PDF
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
PDF
Azure Functionsでサーバーレスアプリケーション構築
PPTX
ビルド職人の朝は早い
PDF
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
PDF
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
PPTX
Type scriptmemo
JavaScriptトレンド総括(2014)
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Play jjug2012spring
多分モダンなWebアプリ開発
WebStormでできること
Jsf アプリ作ったった
React es2015
JSer Class #2
2016/12/17 ASP.NET フロントエンドタスク入門
Gruntの罪と罰
Rdbms起点で考えると見えない世界 okuyama勉強会
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
javascript を Xcode でテスト
Javaで1から10まで書いた話(sanitized)
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
Azure Functionsでサーバーレスアプリケーション構築
ビルド職人の朝は早い
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Type scriptmemo
Ad

Concurrent Programm in JavaScript