タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

マルチスレッドとobjective-cに関するteracy_junkのブックマーク (6)

  • [XCODE] Objective-Cで並列処理を簡単に実装する方法 - YoheiM .NET

    今日は、iPhoneアプリでネットワーク処理を行うアプリならきっと有効な、 処理をマルチスレッドで行う方法をブログに書きたいと思います。 ディスパッチキューを用いた実装となります。 利用する技術 大きく2つの技術を利用します。 1つ目がキューという技術で、キューに処理を登録して、キューは登録された処理を順次実行していくような仕組みを 実現します。 2つ目が、ブロックと呼ばれるObjective-Cの実装技術です。いわゆるクロージャー的なもので、処理を 関数とかメソッドではなく、ブロックという塊で定義できます。 それぞれの技術について、以下の資料が参考になるかもしれません。 並列プログラミングガイド(Apple Document) スレッドプログラミング(Apple Document) マルチスレッドの使いどころ 色々な利用用途があると思いますが、 今回はRSSデータをサーバーからダウンロー

    [XCODE] Objective-Cで並列処理を簡単に実装する方法 - YoheiM .NET
  • マルチスレッド実装時の留意点 : Objective-C プログラミング

    Objective-C では、"performSelectorInBackground:withObject:" メソッドや "NSOperation" クラス、NSThread クラス などを使用して、別スレッドで処理を行うことができるようになっています。 ここでは、別スレッドでの処理を記述するにあたっての留意点に触れてみたいと思います。 autolerease スコープ Objective-C では、autolerease メソッドを使用して、オブジェクトを自動的に開放する仕組みが用意されています。 autolerease メソッドを使うと、予め用意されたオートリリースプールによってその変数が管理されて、オートリリースプールのスコープを抜ける時に、その管理下にある変数もリリースされる仕組みになっています。 ただ、立ち上げたばかりのスレッドでは、オートリリースプールは用意されていないよう

  • 光学薄膜設計ソフトの設計 その14「NSOperation実験」:腰も砕けよ 膝も折れよ:So-net blog

    さて、マルチコアを使い倒すためにはthreadを生成しなければならない。それを簡単にするためのNSOperationのお勉強。このFoundationのクラスは10.5 Leopardから使えるようになった。 Cocoaアプリでマルチコアに対応させるためにはこれまでNSThreadを使っていた。NSThreadはthreadの同期の機能はなく、自分でNSLockなどを使って実装する必要があった。注意深く作法を守らないと、つまらない理由のせいでデッドロックから抜け出せないコードになってしまうなんてことがよくある。 そのthread生成から同期、特に終了処理(子threadが全部終わるまで待つ)というのを肩代わりしてくれるのがNSOperationらしい。 マルチコアを使う用途だけでなく、ある程度時間のかかる処理をマルチスレッド化する場合にも使えるらしいので、以前数値計算のためにNSThrea

  • NSOperationQueue スレッドと処理の関係 - A Day In The Life

    iOS4 になって NSOperationQueue クラスの仕様に追加がありました。以前は並列処理しか出来なかったのですが mainQueue メソッドが追加になり逐次処理も出来るようになりました。変更点も含めて NSOperationQueue の使い方をまとめてみます。 NSOperationQueue クラスの使い方をきちんと理解していると NSOperation クラスの非並列実行モードと並列実行モードの使い方を間違えることも少ないと思います。 NSOperation クラスについては以下の記事で詳しく説明しています。 NSOperation 非並列実行モードと並列実行モードの使い分け NSOperationQueue と NSOperation の関係 NSOperationQueue と NSOperation を使うと、バックグラウンドで何か処理をしたい場合に一連の処理をま

    NSOperationQueue スレッドと処理の関係 - A Day In The Life
  • NSOperation 非並列実行モードと並列実行モードの使い分け - A Day In The Life

    バックグラウンド処理を手軽に実行できる NSOperation クラスですがこのクラスをきちんと理解して使うには NSOperationQueue クラスについて理解する必要があります。 前回の記事で NSOperationQueue の使い方について説明しました。まだお読みでない方はこちらの記事を先に目を通しておくことをお勧めします。 NSOperationQueue スレッドと処理の関係 今回は NSOperation について NSURLConnection を使ったサーバ通信プログラムを例に説明していきます。 NSOperation には2つの実行モードが存在する NSOperation クラスには「非並列実行モード」と「並列実行モード」の2つの実行モードがあります。 非並列実行モードは処理の終了を NSOperationQueue に任せるのに対し、並列実行モードはプログラマが任

    NSOperation 非並列実行モードと並列実行モードの使い分け - A Day In The Life
  • NSOperationによるバックグラウンド処理 - Objective-Audio

    NSOperationってCoreAnimationみたいな派手な機能と違って、あまり解説されていない気がするので、使い方を書いておきます。オーディオのアプリケーションでも、読み込んだオーディオファイルの波形の画像をバックグラウンドで作っておいて、出来上がったら表示するみたいな事にも使えると思いますので。(※2008/5/12 記事にNSInvocationOperation等いろいろ修正を加えています。GCなしにも対応のはず。) NSOperationを使う NSOperationのサブクラスのmainメソッドにバックグラウンドで行いたい処理を記述しておき、そのインスタンス(以後、オペレーション)を作成して、NSOperationQueueのインスタンス(以後、キュー)のaddOperationメソッドに渡すと、あとは勝手にバックグラウンドで処理してくれます。キューへ渡した後にオペレーシ

  • 1