タグ

2017年4月21日のブックマーク (6件)

  • NSLockメモ - Qiita

    詳しくは「スレッドプログラミングガイド」参照 ロックはスレッドの排他制御に必要。 注:アップルはスレッドプログラミングではなくより簡便な代替テクノロジー(NSOperation, GCD, アイドル時間通知、非同期関数、タイマー、別プロセス)を使うことを勧めている。 スレッドの実装 スレッドの基礎にある実装メカニズムはMachスレッド POSIX API スレッドの3つの状態 実行、実行可能、ブロック NSLockingプロトコル ロックオブジェクトが持つべきメソッド。lock,unlock。 lock ロックを取得する。ロックが取得できるまでスレッドを止める。 unlock ロックを開放する。 NSLockingの実装の一つ。 NSLockingプロコトル以外により細かな制御ができる。 tryLock: ロックでなかったときに直ちにNOを返す。lockが開放されるまで待つのと対照的。 l

    NSLockメモ - Qiita
  • NSRecursiveLock による排他制御を行う : Objective-C プログラミング

    Objective-C には、複数スレッドからの同時アクセスをブロックする機能を持った NSRecursiveLock が利用できます。 この NSLock というクラスは、内部的には POSIX threads の ミューテックス を使った排他制御と同じだそうです。ミューテックスというのは、それで制御されている区間が「使用中か」「未使用か」を判断するための機構です。 類似するロックに NSLock がありますけど、今回扱う NSRecursiveLock では、同一スレッドからの再ロックであれば通過させる「再帰的ロック」という方式を採用しています。 POSIX threads のミューテックスのロックの種類で言えば、この NSRecursiveLock では PTHREAD_MUTEX_RECURSIVE に該当するようです。 ここでは NSRecursiveLock をつかって、複数ス

  • swiftで使えるAtomic系API (OSX/iOS) - Pebble Coding

    swiftで使えるAtomic系APIがあったので備忘録としてリストアップしておく。 OSX/iOSで確認した。 func OSAtomicAdd32(__theAmount: Int32, __theValue: UnsafeMutablePointer<Int32>) -> Int32 func OSAtomicAdd32Barrier(__theAmount: Int32, __theValue: UnsafeMutablePointer<Int32>) -> Int32 func OSAtomicIncrement32(__theValue: UnsafeMutablePointer<Int32>) -> Int32 func OSAtomicIncrement32Barrier(__theValue: UnsafeMutablePointer<Int32>) -> Int32 f

    swiftで使えるAtomic系API (OSX/iOS) - Pebble Coding
  • RxSwift コードリーディングの勘所@社内RxSwift勉強会

    This document discusses RxSwift, a library for reactive programming with Swift. It provides 3 key points: 1) RxSwift uses Observables to handle asynchronous data streams and events. Operators like map, filter, and merge allow transforming and combining Observable sequences. 2) Observables can be either "hot" or "cold"- hot Observables constantly update subscribers while cold Observables only updat

    RxSwift コードリーディングの勘所@社内RxSwift勉強会
  • [新サービス] 一撃でCI環境を作れる AWS CodeStar | DevelopersIO

    渡辺です。 2017/04/19開催(日時間:2017/04/20)の『AWS Summit in San Francisco』で発表された新サービス『AWS CodeStar』についてお知らせします。 一言で言えば、CodeCommit, CodePipeline, CodeBuild, CodeDeployとそれらに付随する実行環境を一撃で構築・管理できます(2017年4月の時点で、東京リージョンでは利用できません)。 実行環境もカバーする最強のスキャホールド AWS CodeStarが何者か、一言で言えば、一時期に流行ったスキャホールドの類です。 Ruby on Railsが登場した時、コマンドひとつでウェブアプリケーションの雛形ができることに衝撃を覚えた人は多いでしょう。 ベース部分をスキャホールド(足組)として作り、肉付けをしていくというスタイルが流行ったかと思います。 AWS

    [新サービス] 一撃でCI環境を作れる AWS CodeStar | DevelopersIO
  • UnityのGCはどんな実装になっているのか

    こんにちは。Aiming エンジニアの久保田です。 僕の携わっているプロジェクトでは、近頃、Unity製クライアントのパフォーマンスの調査や改善を行っている最中です。 プロファイラを眺めていると、僕達が書くアプリケーションレイヤのコードが目立って遅い、ということは珍しいのですが、代わりにC#世界のスパイクとしてよく顔を出すのが、GC実行時間です。 C#は、タイプセーフでありながら人間にやさしく、getter/setter、async/await、Rx、ロケットなラムダ式、他他他…最新型の言語への影響も多大な、ファッション的にも◎な言語です。しかし、闇雲に全ての機能をタダで……というわけにはいかず、ことパフォーマンス面においては、GCというなかなか高い代償を支払うことになりかねないわけですね。 結論としては、UnityのGCは、皆が期待していたほど高性能ではなく、現状では僕達が書くC#が発生

    UnityのGCはどんな実装になっているのか