ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

グローバルインタプリタロック

索引 グローバルインタプリタロック

ーバルインタプリタロック(英: Global Interpreter Lock, GIL)とは、プログラミング言語のインタプリタのスレッドによって保持されるスレッドセーフでないコードを、他のスレッドと共有してしまうことを防ぐための排他 ロックである。インタプリタのひとつのプロセスごとに必ずひとつの GIL が存在する。 プログラミング言語においてグローバルインタプリタロックを採用した場合、複数のスレッドを持つインタプリタプロセスの並行性を制限してしまう。プロセスをマルチプロセッサのマシンで実行させた場合、ほとんどあるいはまったく速度の向上が見られない。 こうしたロックを採用する理由として、下記のものがある。.

16 関係: 並行性マルチプロセッシングロック (情報工学)プログラミング言語プロセスインタプリタグリーンスレッドスレッド (コンピュータ)スレッドセーフC言語CPythonDr. Dobb's Journal英語PythonRuby排他制御

並行性

並行性(へいこうせい、concurrency)とは、計算機科学において、時間的にオーバーラップして実行される計算を伴うシステムの属性であり、そのような計算ではリソースを共有することがある。並行計算は、同一チップ上の複数のコア、単一プロセッサ上のプリエンプションを伴うマルチスレッド、物理的に分離した複数プロセッサ上などで行われる。並行計算のための数学的モデルとして、ペトリネット、プロセス計算、並列ランダムアクセス機械モデル、アクターモデル、 などが開発された。.

新しい!!: グローバルインタプリタロックと並行性 · 続きを見る »

マルチプロセッシング

マルチプロセッシング(multi processing)とは、(本来は)ひとつのプロセスだけではなく複数の並行プロセスを同一システム内で使用することを意味する。 マルチタスクと同様ひとつのCPUを複数のプロセスが共有することも示すが、ひとつのシステム内の複数のCPUが複数のスレッドを動作させることも意味する。マルチプロセッサと言う場合は一般に後者のみを指す。.

新しい!!: グローバルインタプリタロックとマルチプロセッシング · 続きを見る »

ロック (情報工学)

情報工学におけるロック (lock) とは、計算機システム内に複数の動作主体(プロセス,スレッド等)のある環境で、データやデバイスなどのリソースへのアクセス制限を課す同期機構。ロックは並行性制御ポリシーを実施する手法のひとつである。アクセス制限を課す動作を「ロックする」,「ロックを取得する」などと表現する.また対義語として,制限を解除することをunlock(アンロック,ロック解放,ロック解除)と言う..

新しい!!: グローバルインタプリタロックとロック (情報工学) · 続きを見る »

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: グローバルインタプリタロックとプログラミング言語 · 続きを見る »

プロセス

プロセスとは、情報処理においてプログラムの動作中のインスタンスを意味し、プログラムのコードおよび全ての変数やその他の状態を含む。オペレーティングシステム (OS) によっては、プロセスが複数のスレッドで構成される場合があり、命令を同時並行して実行する。.

新しい!!: グローバルインタプリタロックとプロセス · 続きを見る »

インタプリタ

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。.

新しい!!: グローバルインタプリタロックとインタプリタ · 続きを見る »

グリーンスレッド

リーンスレッド(英: green threads)とは、コンピュータプログラミングにおいて、オペレーティングシステムではなく仮想マシン (VM) によってスケジュールされるスレッドである。グリーンスレッドはネイティブのOSの機能に依存せずにマルチスレッド環境をエミュレートする。グリーンスレッドはカーネル空間ではなくユーザー空間で管理されるため、ネイティブスレッドがサポートされていない環境でも動作する。.

新しい!!: グローバルインタプリタロックとグリーンスレッド · 続きを見る »

スレッド (コンピュータ)

レッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。.

新しい!!: グローバルインタプリタロックとスレッド (コンピュータ) · 続きを見る »

スレッドセーフ

レッドセーフ(Thread-safe)は、マルチスレッドプログラミングにおける概念である。あるコードがスレッドセーフであるという場合、そのコードを複数のスレッドが同時並行的に実行しても問題が発生しないことを意味する。特に、ある共有データへの複数のスレッドによるアクセスがあるとき、一度に1つのスレッドのみがその共有データにアクセスするようにして安全性を確保しなければならない。 スレッドセーフはマルチスレッドプログラミングにおける重要な要素である。それは従来、オペレーティングシステムの開発者だけが考慮しなければならない問題だったが、1990年代後半には一般的な問題となった。マルチスレッドプログラムでは、複数のスレッドが同じアドレス空間内で同時に実行される。各スレッドのアクセスするメモリ領域が特に制限されることはなく、全スレッドが全アドレス空間にアクセスできる。従って、プログラムを見たときに予測される制御の流れやデータアクセスの順序は実際に実行時に起きることとかけ離れたものとなることが多い。これは「驚き最小の原則」に反している。スレッドセーフは実際の処理の流れとプログラムのソースコードの関連性を強化し、予期しない動作を最小にすることを指向した特性である。.

新しい!!: グローバルインタプリタロックとスレッドセーフ · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: グローバルインタプリタロックとC言語 · 続きを見る »

CPython

CPython はPython プログラミング言語の最も広く用いられている標準の実装である。CPython は C言語で記述されている。CPython 以外に、製品としての品質をもつ Python 実装はJava で記述された Jython、共通言語ランタイム 用に記述された IronPython の2つがあり、またいくつかの実験的な実装もある。Classic Python というバクロニムが、'C' の別の意味として提案されている。 CPython はバイトコードインタプリタである。C を含むいくつかの言語での外部関数インターフェイスを持っており、Python 以外の言語の言語バインディングを明示的に書く場合に使用される。.

新しい!!: グローバルインタプリタロックとCPython · 続きを見る »

Dr. Dobb's Journal

Dr.

新しい!!: グローバルインタプリタロックとDr. Dobb's Journal · 続きを見る »

英語

アメリカ英語とイギリス英語は特徴がある 英語(えいご、)は、イ・ヨーロッパ語族のゲルマン語派に属し、イギリス・イングランド地方を発祥とする言語である。.

新しい!!: グローバルインタプリタロックと英語 · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: グローバルインタプリタロックとPython · 続きを見る »

Ruby

Ruby(ルビー)は、まつもとゆきひろ(通称 Matz)により開発されたオブジェクト指向スクリプト言語であり、スクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。 また日本で開発されたプログラミング言語としては初めて国際電気標準会議で国際規格に認証された事例となった。.

新しい!!: グローバルインタプリタロックとRuby · 続きを見る »

排他制御

排他制御せずに ''i'' と ''i+1'' という2つのノードを同時に連結リストから外す操作を行うと、結果として ''i+1'' のノードが外れないという状態になりうる。 排他制御(はいたせいぎょ)とは、コンピュータ・プログラムの実行において、複数のプロセスが利用出来る共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにする事で整合性を保つ処理の事をいう。相互排除または相互排他(mutual exclusion)ともいう。最大k個のプロセスが共有資源にアクセスして良い場合を k-相互排除という。 換言すれば1つのクリティカルセクションに複数のプロセス(またはスレッド)が同時に入ることを防ぐことである。クリティカルセクションとは、プロセスが共有メモリなどの共有資源にアクセスしている期間を指す。排他制御の問題は1965年、エドガー・ダイクストラが Solution of a problem in concurrent programming control(並行プログラミング制御における問題の解法)と題した論文で扱ったのが最初であるTaubenfeld.

新しい!!: グローバルインタプリタロックと排他制御 · 続きを見る »

ここにリダイレクトされます:

Global Interpreter Lock

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »