R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎

Slides:



Advertisements
Similar presentations
ASP.NET MVC 3 と NuGet で始める 高速 Web アプリ開発 Microsoft MVP for ASP.NET/IIS 芝村 達郎 (しばむら たつろう) d.hatena.ne.jp/shiba-yand.hatena.ne.jp/shiba-yan twitter.com/shibayantwitter.com/shibayan.
Advertisements

G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
わんくま同盟 東京勉強会 #21 R流・ C#3.0 LINQ とラムダ式で遊ぼ う Microsoft MVP for Development Tools - Visual C# (April March 2009) 2008 年 06 月 21 日 R ・田中一郎
わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
わんくま同盟 福岡勉強会 #4 yield について るーごん. わんくま同盟 福岡勉強会 #4 自己紹介 日本一人口が少ない県に住んでいます。 一昨年まで、ちょっと福岡に住みました。 仕事は主に dbMAGIC 。 プログラミング言語はよく分かりません。 好きなもの ポケモン、ファイブマン、ジェットマン、
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
→その正体は S/人/謎の着物着付け師(見習い)/
Windows HPC Server を使ってみる
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
.NET Framework 4.0 世代の Expression Trees
Microsoft MVP for Development Tools - Visual C#
Microsoft MVP for Development Tools - Visual C#
Expression Blend 3で始めるSilverlight 3アプリケーション開発
わんくま同盟 東京勉強会 #2 10:30~10:40 わんくま同盟について、えムナウのプログラミングのページについて
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
Ver Manual 2010 Tanaka.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
RDBMSについて 2年7組  小鹿 慎太郎.
MSBuild 色々出来るよ 2011/04/02 お だ.
MS製開発ツールの歴史とか….
Boost.勉強会 #8 大阪 ( ) C++ Tips 3 カンマ演算子編.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
2013年度 プログラミングⅡ ~ 授業紹介 ~.
プログラミング2 関数
Expression Blend 3で始めるSilverlight 3アプリケーション開発
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
Windows Azure (CTP) 触ってみた
VS2010はここがすごい 中 博俊.
C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦.
Microsoft MVP for Development Tools – Visual C++
VS2010はここがすごい 中 博俊.
2015年度 プログラミングⅠ ~ はじめてのプログラミング ~.
VS2010はここがすごい 中 博俊.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
WinUnit お気楽お手軽 UnitTest
WinUnit お気楽お手軽 UnitTest
Microsoft MVP for Development Tools – Visual C++
仕事: SystemVerilogを使いたい
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
Windows Azure (CTP) 触ってみた
<前提条件> iSeriesSite ワークフロー 実行環境 構成イメージ
Microsoft MVP for Development Tools – Visual C++
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
VS2010はここがすごい 中 博俊.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
2014年度 プログラミングⅠ ~ はじめてのプログラミング ~.
Visual Basic 2010 による 学習ウェアの開発
2013年度 プログラミングⅠ ~ はじめてのプログラミング ~.
iSeries Site 人事・給与C/S版のハードウェア・ソフトウェア要件
→その正体は S/人/謎の着物着付け師(見習い)/
同期処理のモジュール化を 可能にする アスペクト指向言語
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
VS2010はここがすごい 中 博俊.
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
How To WPF アプリケーション Part4 By 中博俊.
C#プログラミング実習 第1回.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Presentation transcript:

R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎 http://blogs.wankuma.com/rti/ Microsoft MVP for Development Tools - Visual C# (April 2007 - March 2010) Microsoft Certified Professional Developer  - Windows Developer Microsoft Certified Technology Specialist - .Net Framework 2.0: Windows Applications

会員番号:34 名前:R・田中一郎 所在:栃木県 年齢:18才 職業: 主に業務用 システムの開発 自己紹介 2005年11月 Microsoft Visual Studio .NET デビュー。 この頃から R.Tanaka.Ichiro と名のりネットでアクティブに活動を始める。 2006年02月 C# を学び始める。理想的な言語に感動。尊敬する方々の影響も大きい。 2006年09月 わんくま同盟加盟 ある事件がきっかけで、中さんから声をかけていただき加盟。 2006年11月 MSC2006 にて R・田中一郎として始めて人前に姿を晒す。 2007年04月 Microsoft MVP for Visual Developer - Visual C# を受賞。 2007年06月 わんくま同盟勉強会にてスピーカーデビュー。 2008年04月 Microsoft MVP for Development Tools - Visual C# を受賞。 2008年05月 70-526,70-536 試験をパス。 Microsoft Certified Technology Specialist for .Net Framework 2.0: Windows Applications 資格取得。 2009年04月 Microsoft MVP for Development Tools - Visual C# を受賞。 70-548 試験をパス Microsoft Certified Professional Developer for Windows Developer 資格取得。 会員番号:34 名前:R・田中一郎 所在:栃木県 年齢:18才 職業:  主に業務用  システムの開発

クライアントのリクエストが同時に処理できない こんな経験はありませんか?<Demo> 処理中に固まる クライアントのリクエストが同時に処理できない CPUがフルパワーで使えない

通常の処理の流れ 処理1 処理2 処理3 ひとつずつ処理する

マルチスレッドな処理の流れ 処理1 処理2 処理3 処理4 複数の処理を並列に実行できる

System.ComponentModel.BackgroundWorker 処理中にユーザー インターフェイスが応答しなくなることを防ぐために、処理を別スレッドで実行できる <Demo>

System.Threading.Thread 最も、基本的な方法。 優先度の設定などの細かい制御ができる。 <Demo>

System.Threading.ThreadPool スレッド数を制御したり、スレッドリソースを再利用することで、パフォーマンスの良いマルチスレッドの処理ができる。 スレッドメソッドの引数を1つ取ることが可能。 <Demo>

System.Threading.Timer 一定間隔でスレッドを作成して処理を実行させることができる。 <Demo>

スレッドプールを自動的に使用してメソッドを実行する。 Delegate スレッドプールを自動的に使用してメソッドを実行する。 戻り値の取得や、引数を複数使用できる。 また、例外処理や終了処理の待機も可能。 <Demo>

はまりどころ 変数に格納される値が常時変化してしまう問題~排他制御(Lock) 最適化によって必要な処理が省かれてしまう問題~最適化防止(volatile) 非同期であるが故の問題   終わらなくても次の処理が動作してしまう   実行される順序がバラバラ

C#4.0 - Task using System.Threading.Tasks; : Task t0 = Task.StartNew(() => 重い処理(0)); Task t1 = Task.StartNew(() => 重い処理(1));

for (int i = 0; i < 10; ++i) { 重たい処理(i); } 並列 C#4.0 – for 通常 for (int i = 0; i < 10; ++i) { 重たい処理(i); } 並列 Parallel.For(0, 10, i => { 重たい処理(i) }); <Demo>

foreach(var x in collection) { 重たい処理(x); } 並列 C#4.0 – foreach 通常 foreach(var x in collection) { 重たい処理(x); } 並列 Parallel.Foreach(collection, x => { 重たい処理(x) }); <Demo>

from x in collection select x; 並列 C#4.0 – LINQ 通常 var q = from x in collection select x; 並列 from x in collection.AsParallel() select x; <Demo>

まとめ 記述は簡単になって使いやすくなります でも、はまり所は今までと同じです 処理の内容を理解して用法用量をまもって  正しく使いましょう

ご清聴ありがとうございました! 2009年05月16日 R・田中一郎 http://blogs.wankuma.com/rti/ Microsoft MVP for Development Tools - Visual C# (April 2007 - March 2010) Microsoft Certified Professional Developer  - Windows Developer Microsoft Certified Technology Specialist - .Net Framework 2.0: Windows Applications