タグ

並列処理とthreadに関するi_matsuiのブックマーク (2)

  • Pythonで並列処理をするなら知っておくべきGILをできる限り詳しく調べてみた - Qiita

    最近Pythonでオーケストレーション層(BFF)のアプリケーションを書く機会がありました。 Python3.4からはasyncioが導入され、I/Oバウンドな処理はシングルスレッドでも効率的に捌けるようになったものの、依然としてCPUバウンドな処理はGILが存在することで、シングルプロセス下では並列処理が制限されます。 このことから言語特性として、CPUバウンドよりもI/Oバウンドな処理を複数捌くことに適していると見ることができます。言語選択の意思決定をする際に重要なファクターとなりますが、そのためにはGILの仕組みを改めて知る必要があると思い、調べてみました。 GIL(グローバルインタプリタロック)とは そもそもGILとは何のことでしょうか。 正式にはGlobal Interpreter Lock(グローバルインタプリタロック)といい、PythonRuby等の言語に見られる排他ロック

    Pythonで並列処理をするなら知っておくべきGILをできる限り詳しく調べてみた - Qiita
  • 【Swift】Grand Central Dispatch (GCD)とOperationQueue まとめ - Qiita

    経緯 普段使っているのに全体像があまり見えていないものとして Grand Central Dispatch (GCD)とOperationQueueが 自分の中にあり色々と調べてみました。 調べていけばいくほど新しいことがどんどん出てきて収拾がつかなくなってきたのですが、現時点までの部分でまとめてみたいと思います。 概念の紹介 最初にいくつかの概念について紹介します。 Concurrency 複数のスレッドを用いて行われる同時並列処理のことです。 iOSでは1つのプロセス(アプリケーション)の中で1つ以上のスレッドを用います。 シングルコアの場合 時間で動かすスレッドを切り返す、 コンテキストスイッチという方法を使ってConcurrencyを実現しています。 マルチコアの場合 parallelism(並列処理)を使って同時に複数のスレッドを動かします。 Task(タスク) 実行される1まと

    【Swift】Grand Central Dispatch (GCD)とOperationQueue まとめ - Qiita
  • 1