Submit Search
Upload
Concurrent Programming in JavaScript
•
Download as PPTX, PDF
•
0 likes
•
139 views
yjono Seino
Follow
Sapporo.js というコミュニティで発表した時の資料。 2012年頃の JavaScript並行プログラミング とそのちょっと先に出てきた技術について紹介していた。
Read less
Read more
Internet
Report
Share
Report
Share
1 of 21
Download now
Recommended
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
Recommended
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
Cssアニメーションとその制御
Cssアニメーションとその制御
Muyuu Fujita
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」
Seiko Kuchida
軽量フレームワークNancy
軽量フレームワークNancy
Narami Kiyokura
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
Learning jQuery
Learning jQuery
taiju higashi
Gulp De wordpress in WordBench
Gulp De wordpress in WordBench
Kanako Kobayashi
E2E CSS Testing at HTML5 Conference 2016
E2E CSS Testing at HTML5 Conference 2016
Takeharu Igari
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
Shuichi Takaya
WordPress ユーザーのための a-blog cms 入門
WordPress ユーザーのための a-blog cms 入門
Akiko Kasaya
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化
Yoshihiro Ura
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
VOYAGE GROUP
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
WebStormでできること
WebStormでできること
kamiyam .
More Related Content
What's hot
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
Cssアニメーションとその制御
Cssアニメーションとその制御
Muyuu Fujita
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」
Seiko Kuchida
軽量フレームワークNancy
軽量フレームワークNancy
Narami Kiyokura
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
Learning jQuery
Learning jQuery
taiju higashi
Gulp De wordpress in WordBench
Gulp De wordpress in WordBench
Kanako Kobayashi
E2E CSS Testing at HTML5 Conference 2016
E2E CSS Testing at HTML5 Conference 2016
Takeharu Igari
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
Shuichi Takaya
WordPress ユーザーのための a-blog cms 入門
WordPress ユーザーのための a-blog cms 入門
Akiko Kasaya
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化
Yoshihiro Ura
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
What's hot
(17)
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
React+fluxを導入した話
React+fluxを導入した話
Cssアニメーションとその制御
Cssアニメーションとその制御
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」
軽量フレームワークNancy
軽量フレームワークNancy
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Learning jQuery
Learning jQuery
Gulp De wordpress in WordBench
Gulp De wordpress in WordBench
E2E CSS Testing at HTML5 Conference 2016
E2E CSS Testing at HTML5 Conference 2016
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
WordPress ユーザーのための a-blog cms 入門
WordPress ユーザーのための a-blog cms 入門
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化
Ember コミュニティとわたし
Ember コミュニティとわたし
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Similar to Concurrent Programming in JavaScript
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
VOYAGE GROUP
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
WebStormでできること
WebStormでできること
kamiyam .
Jsf アプリ作ったった
Jsf アプリ作ったった
Oda Shinsuke
React es2015
React es2015
t-onizawa
JSer Class #2
JSer Class #2
mizuky fujitani
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
Gruntの罪と罰
Gruntの罪と罰
kamiyam .
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
javascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
hideyuki ikeda
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
ビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Akira Inoue
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
Type scriptmemo
Type scriptmemo
ytanno
Similar to Concurrent Programming in JavaScript
(20)
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Play jjug2012spring
Play jjug2012spring
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
WebStormでできること
WebStormでできること
Jsf アプリ作ったった
Jsf アプリ作ったった
React es2015
React es2015
JSer Class #2
JSer Class #2
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
Gruntの罪と罰
Gruntの罪と罰
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
javascript を Xcode でテスト
javascript を Xcode でテスト
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
ビルド職人の朝は早い
ビルド職人の朝は早い
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Type scriptmemo
Type scriptmemo
Concurrent Programming in JavaScript
1.
Concurrent Programming in JavaScript SEINO
Yoshinori Sapporo.js
2.
自己紹介 • 情野 吉紀 •
職業 デバッガー • プログラミング好き • 趣味プログラミングしない • JavaScriptほとんど書かない
3.
おしながき • 導入 • カタログ •
未来
4.
• 導入 • 並行プログラミングカタログ •
未来
5.
メリット • なんでしょう? • JavaScript
1スレッドしかないよね?
6.
JSスレッドモデル • シングルスレッドのように振る舞う • デッドロック、競合状態と無縁 •
WebWorkerについては後でね • サイ本6版 p.352 • 13.3.3 クライアントサイドJavaScriptスレッドモデル
7.
メリット • 複数の処理を並行に実行できると • scriptロード •
ユーザ入力応答 • 通信 • DOM操作 • などを、待機時間なしに実行できる
8.
デメリット • なんでしょう?
9.
デメリット • キュータスク処理時間は50msec以下 • 続・ハイパフォーマンスWebサイト •
メンテナンス性の低下 • デバッグの難化 • 実行順序が非決定的
10.
どうにかならないの?
11.
• 導入 • 並行プログラミングカタログ •
未来
12.
カタログ • コールバックネスト • setTimeoutイディオム •
Web Workers • node.jsスタイルAPI • Promise/A(+) • Flow.js ( NOT Flow-js )
13.
コールバックネスト • ユースケース • 非同期API
14.
setTimeoutイディオム • ユースケース • ユーザ応答性を高めるために処理を 分割したい •
続・ハイパフォーマンスWebプログラミング • http://please-sleep.cou929.nu/using-javascript-timer-for-ui- performance.html
15.
Web Workers • ユースケース •
ユーザ応答性を高めるために処理を 分割したい • とりわけ重い処理(100ms over)を並行 処理したい • Web Workers
16.
node.jsスタイルAPI • ユースケース • node.jsアプリケーションを作る際に 書く •
http://dev.classmethod.jp/server- side/asyn/
17.
Promise/A(+) • ユースケース • 非同期API間でデータを引き継ぐ場合 •
例外処理が必要な場合
18.
Flow.js • ユースケース • 処理フローがグラフ構造のように複 雑になる場合
19.
未来 • Web Workers •
Task.js - http://taskjs.org/ • generators + promises = tasks • Fiber - https://npmjs.org/package/fibers • Actor -
20.
参考文献 • JavaScript 第6版
21.
次回予告 • Io :
Prototype Programming Language • JavaScript: Power of Simplicity Part2 Functional Programming
Editor's Notes
動機 - JavaScriptプログラムを書いてて並行プログラミングをしなければ行けなくなる理由は? 並行プログラミングカタログ - 並行プログラミング技法は何十年も前から研究されているが、一方で現在のJavaScriptではどんなプログラミング技法が使えるの? 未来 - 現在主流となっている並行プログラミング技法、そしてEcmaScript6の仕様からJavaScriptの未来の並行プログラミング技法をイメージします。
動機 - JavaScriptプログラムを書いてて並行プログラミングをしなければ行けなくなる理由は?
サーバーサイドは@tricknotesに聞いてください。 node.js はプロセスをフォークしてプロセス間通信するっぽい。OSネイティブなプロセス間通信プログラミング。 RhinoとかはたぶんJavaThreadじゃね?(投げやり)
ATMの例 札幌駅地下街のアピアにはATMたくさんあります。 複数の金融機関それぞれについて複数台あり、通路が待っている人であふれないようになっています。 仮に、1台しかATMがなかったとします。 人がたくさん並びます。対策をとらないとすぐに人であふれてしまいます。 どんな対策をとりますか? 答えは、一人一人の持ち時間を設定することです。
メンテナンス性の低下ってのは、著しく読みづらくなる、属人性の高いコードが生まれやすい
動機 - JavaScriptプログラムを書いてて並行プログラミングをしなければ行けなくなる理由は?
Web
Web Workers 共有ワーカー 名古屋にお住まいの @bleis おにいちゃんが発表した async/await 不要論 http://bleis-tift.hatenablog.com/entry/asyncawaitdis F# computation式 asyncワークフロー
Download now