JP2001051860A - マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体 - Google Patents
マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体Info
- Publication number
- JP2001051860A JP2001051860A JP11228308A JP22830899A JP2001051860A JP 2001051860 A JP2001051860 A JP 2001051860A JP 11228308 A JP11228308 A JP 11228308A JP 22830899 A JP22830899 A JP 22830899A JP 2001051860 A JP2001051860 A JP 2001051860A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- program
- call
- threads
- processing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
シングルスレッドプログラムの呼出しを保証して既存資
源を有効に利用する。 【解決手段】複数のスレッドを並行して実行可能なマル
チスレッドプログラム10から別プロセスのシングルス
レッドプログラム18を呼出して実行する場合に、マル
チスレッドプログラム10の特定の1スレッド16によ
りシングルスレッドプログラム18を最初に呼出して実
行する際に、シングルスレッドブログラム18を呼出す
唯一の呼出専用スレッド20を生成して使用する。
Description
並行して実行するマルチスレッドプログラムからシング
ルスレッドプログラムを呼出して実行するマルチスレッ
ド処理装置、処理方法並びにマルチスレッド処理プログ
ラムを格納したコンピュータ可読の記録媒体に関し、特
に、複数のスレッドによる同じシングルスレッドプログ
ラムの呼出しを保証するマルチスレッド処理装置、処理
方法並びにマルチスレッド処理プログラムを格納したコ
ンピュータ可読の記録媒体に関する。
作するプログラム、所謂マルチスレッドプログラムにあ
っては、あるスレッドの処理が動的ライブラリとして存
在する既存のCOBOL等のシングルスレッドプログラ
ムを使用した方が速いような場合、マルチスレッドプロ
グラムから既存のシングルスレッドプログラムを呼出し
て動作させる。
e Method Invocation )を用いてサーバ上のマルチスレ
ッドプログラムで既存のCOBOLプログラムを呼出し
て実行する場合である。
RMIサーバアプリケーション100は、クライアント
120−1,120−2からのメソッド呼出し(RMI
呼出)を受け付けると、メインスレッドとしてのルート
スレッド114を生成した後に、呼出毎にスレッド11
6−1,116−2を生成して実行する。
100は、メソッド呼出しを受けて複数のスレッドを生
成し、これらを並列的に実行することから、必ずマルチ
スレッドプログラムとして動作することになる。
6−2の生成を制御することはできない。このためスレ
ッド116−1,116−2は、任意に既存資産として
のCOBOLプログラム等で記述されたシングルスレッ
ドプログラム118を呼び出して実行する。
スレッドプログラムからシングルスレッドプログラムを
呼出して実行する場合には、次の問題点がある。
は、1プロセスに1スレッドしかないことを前提に静的
変数のような資源を使っている場合がある。このような
シングルスレッドプログラム118を複数のスレッドが
アクセスするマルチスレッドで動作させると、静的変数
のような資源へのアクセスが競合し、シングルスレッド
プログラムが異常動作する場合がある。
116−2の関数によりシングルスレッドプログラムの
静的変数をアクセスした場合の問題を示す。図13のス
レッド116−1,116−2は、非同期に並列に実行
され、それぞれシングルスレッドプログラム118を呼
出すものとする。
の関数「wrap f1(args) 」、「wrapf2(args) 」により
シングセルスレッドプログラム118の静的変数「ptr
」ををアクセスしている。例えばスレッド116−1
による呼出しで、図14の主記憶130の割当てられた
プロセス領域132のスレッド対応領域134−1のf
(1)内でデータ領域136の中に静的変数ptr のメモリ
領域138を割当て、この静的変数ptr に割当てた領域
138にアクセスし、f1()が復帰する前にその領域13
8を開放する。
様にスレッド対応領域134−2のf2()内で静的変数pt
r にメモリ領域138を割当て、この静的変数ptr に割
当てた領域138にアクセスし、f2()が復帰する前にそ
の領域138を開放する。
ングルスレッドプログラム118の実行は非同期である
ため、関数f1()とf2()による静的変数ptr のアクセスも
非同期に並列して実行される。このためスレッド116
−1の関数f1()で静的変数ptr にメモリ領域138を割
当てた直後に、スレッド116−2の関数f2()が再び静
的変数ptr にメモリ領域138を割り当てることが起き
る。
静的変数ptr の領域138にアクセスした場合、スレッ
ド116−2の関数f2()による割当てによって意図した
領域ではなくなっており、簡単にメモリオーバーラン等
の異常が起こり、プログラムの異常終了につながる。
複数のスレッド116−1,116−2で実行された場
合、スレッド116−1,116−2によってシングル
スレッドプログラム118は呼出した順に実行されると
は限らないので、動作順も保証されない。このため、実
行結果が利用者の意図とは異なる場合がある。
アプレットから既存資産であるシングルスレッドプログ
ラムを呼出す場合である。クライアント142のブラウ
ザ144上に生成されたスレッド116−1,116−
2よってWWWサーバ140のアプレット146−1,
146−2をダウンロードすると、ブラウザ上で複数の
アプレット146−1,146−2が並列に実行され
る。
−1,146−2の生成を制御できない。このためアプ
レット146−1,146−2は、任意に既存資産とし
てのCOBOLプログラム等で記述されたシングルスレ
ッドプログラム118を呼び出して実行する。そのため
図14に示した静的変数のような資源へのアクセスが競
合し、シングルスレッドプログラムが異常動作する場合
がある。
既存のシングルスレッドプログラムを呼出して実行した
場合の問題を解決するため、マルチスレッドプログラム
からシングルスレッドプログラムを呼出す際に別のプロ
セスを生成し、その中でシングルスレッドプログラムを
実行することが考えられる。しかし、新たなプロセスの
生成はデータ領域の生成を伴うことから負荷が大きく、
性能が悪い。
マルチスレッドプログラムに作りなおすことも考えられ
る。しかし、既存のシングルスレッドプログラムをマル
チスレッドプログラムに作りなおすことは、工数がかか
り開発効率が悪い。
りシングルスレッドプログラムの呼出しを保証して既存
資源を有効に利用できるようにしたマルチスレッド処理
装置、処理方法並びにマルチスレッド処理プログラムを
格納したコンピュータ可読の記録媒体を提供することを
目的とする。
図である。
レッド16を並行して実行可能なマルチスレッドプログ
ラム10からシングルスレッドプログラム18を呼出し
て実行するマルチスレッド処理装置であり、マルチスレ
ッドプログラム10の特定の1スレッド16によりシン
グルスレッドプログラム18を最初に呼出して実行する
際に生成され、シングルスレッドブログラム18を呼出
す唯一の呼出専用スレッド20を設けたことを特徴とす
る。
マルチスレッドプログラム内に生成した常に同じ呼出専
用スレッドから呼出す仕組みを設けたことで、シングル
スレッドプログラムが静的変数のような資源を使用して
いた場合でも、資源に対する複数のスレッドからのアク
セスが競合することがない。
ルスレッドプログラムを呼出す際に新たに別プロセスを
生成しないで済むため、実行性能が向上する。更に、マ
ルチスレッドプログラムからシングルスレッドプログラ
ムを呼出す際に、シングルスレッドプログラムをマルチ
スレッドプログラムに作り直す必要がないため、開発効
率が向上する。
プログラム10で生成された複数のスレッド16から呼
出された順にシングルスレッドプログラム18を呼出
す。このためマルチスレッドプログラム内の複数のスレ
ッドが呼出した順でシングルスレッドプログラムが実行
され、ユーザの意図した実行結果が得られる。
プログラム10のスレッド16からの呼出要求として投
入される同期イベントを格納する先入れ先出し構成(FIF
O 構成)のイベントキュー26を備え、イベントキュー
26から同期イベントを順番に取出してイングルスレッ
ドプログラム18を実行する。
6に投入される同期イベントは、図1(C)のように、
呼出すシングルスレッドプログラム18を特定するため
の情報として、少なくともメソッド名及び呼出元スリッ
ドIDを格納したレコードである。尚、レコードにはこ
れ以外にライブラリ名、メソッドプロトタイプ、復帰値
と引数を格納してもよい。
プログラム10で生成した最上位スレッド(ルートスレ
ッド又はメインスレッド)14のグループに属すること
で、最上位スレッド14の終了に同期して終了する。
ラム18を呼出す唯一の呼出専用スレッド20は、一度
生成されたらプロセスが有効である間存在するが、プロ
セスの終了時に正しくスレッドが終了させる必要があ
る。そこで呼出専用スレッド18を最上位のルートスレ
ッド(メインスレッド)14と同じスレッドグループに
属するようにし、ルートスレッド(メインスレッド)の
終了時に呼出専用スレッド20が終了することを保証す
る。
プログラム18を呼出す際に呼出専用スレッド20を必
要とするか否か判定し、必要とする場合は呼出専用スレ
ッド20を使用して呼出し、必要としない場合はシング
ルスレッドプログラム18を直接呼出す。このためユー
ザスレッド16は、シングルスレッドプログラム18の
メソッドプロトタイプ又はメソッドに対応して読出専用
スレッドの使用の有無を記述した図1(B)の環境定義
テーブル22、又はユーザ指定に基づいて、呼出専用ス
レッドを必要とするか否か判定する。
グルスレッドプログラムを呼ぶ場合に、偶然、問題が発
生しないシングルスレッドプログラムの場合があること
に対応している。この場合に呼出専用スレッドを使用す
ると、その分、処理が複雑になり実行性能が落ちる。そ
こで、問題が発生しないシングルスレッドプログラムの
場合には、呼出専用スレッドをバイパスしてシングルス
レッドプログラムを直接呼出し、実行性能を向上させ
る。
可能なマルチスレッドプログラムからシングルスレッド
プログラムを呼出して実行するプログラム処理方法を提
供するものであり、マルチスレッドプログラムの特定の
1スレッドによりシングルスレッドプログラムを最初に
呼出して実行する際に、シングルスレッドブログラムを
呼出す唯一の呼出専用スレッドを生成し、生成後は呼出
専用スレッドを使用して前記シングルスレッドプログラ
ムを呼出すことを特徴とする。
実行可能なマルチスレッドプログラムからシングルスレ
ッドプログラムを呼出して実行するスレッド処理プログ
ラムを格納したコンピュータ可読の記録媒体を提供する
ものであり、マルチスレッド処理プログラムに、マルチ
スレッドプログラムの特定の1スレッドによりシングル
スレッドプログラムを最初に呼出して実行する際に生成
され、シングルスレッドブログラムを呼出す唯一の呼出
専用スレッドを設けたことを特徴とする。
ッド処理装置の実施形態であり、遠隔メソッド呼出し
(RMI)を用いてサーバアプリケーションのマルチス
レッドプログラムを実行する場合を例にとっている。
として機能するRMIサーバアプリケーション10は、
プログラムの起動時にメインスレッドとして動作するル
ートスレッド14を形成し、クライアント12−1,1
2−2からのメソッド呼出しであるRMI呼出しを受け
付ける。
−1,12−2からRMI呼出しを受け付けるごとに例
えばスレッド16−1,16−2を生成し、スレッド1
6−1,16−2はそれぞれ並列に実行されることでマ
ルチスレッド動作を行う。
源として存在する動的ライブラリとしてのシングルスレ
ッドプログラム18を利用する場合がある。既存資産と
してのシングルスレッドプログラム18は、例えばCO
BOLプログラム等で記述されたデータベース等であ
り、RMIサーバアプリケーション10で実現されるマ
ルチスレッドプログラムのプロセスに対し、別プロセス
として存在している。
6−2でシングルスレッドプログラム18を呼び出す場
合に、原則として呼出専用スレッド20を生成する。こ
こでスレッド16−1,16−2の2つが並列に実行さ
れている場合、呼出専用スレッド20を生成するのは、
プログラムの実行順に従って最初にシングルスレッドプ
ログラム18を呼び出す方のスレッドである。
成された呼出専用スレッド20は、FIFO構成のイベ
ントキュー26を内蔵している。スレッド16−1,1
6−2でシングルスレッドプログラム18を呼び出そう
とする場合、各スレッドは同期イベントを生成し、呼出
スレッド20のイベントキュー26に投入する。このス
レッド16−1,16−2がシングルスレッドプログラ
ム18の呼出しのために生成する同期イベントはシン
グルスレッドプログラムを実行するために必要な関数名
や引数情報等の情報;動作対象とするメソッド(シン
グルスレッドプログラム)の識別情報を含むイベント;
を備える。
6は、FIFO構成であることから、イベントキュー2
6にキューイングされている同期イベントを先頭から取
り出し、取り出した同期イベントに含まれる情報に基づ
いてシングルスレッドプログラム18を実行する。
終了すると、呼出専用スレッド20に対し関数が復帰す
るので、この関数復帰を受けて呼出専用スレッド20は
同期イベントを投入したスレッド16−1または16−
2へのシングルスレッドプログラム18の実行終了を通
知する。
し、そのイベントキュー26にスレッド16−1,16
−2からシングルスレッドプログラム18の呼出しを行
った順に同期イベントを投入し、投入した順番に従って
シングルスレッドプログラム18を実行するため、シン
グルスレッドプログラム18の変数のアクセスが競合す
ることがない。
にシングルスレッドプログラム18の呼出しのための同
期イベントを呼出専用スレッド20に投入し、このとき
の関数48−1,48−2がシングルスレッドプログラ
ム18の静的変数50を利用していたとしても、呼出専
用スレッド20はスレッド16−1の同期イベントに基
づくシングルスレッドプログラム18の実行を終了した
後に、スレッド16−2から投入した同期イベントに基
づくシングルスレッドプログラム18の実行を行うこと
になる。
−2がシングルスレッドプログラム18を呼び出してい
ても、その静的変数50に同時にアクセスするスレッド
は1つに限定されるため、資源の競合の問題は発生しな
い。
数48−1,48−2でシングルスレッドプログラム1
8の静的変数50をアクセスした場合の主記憶30のプ
ロセス領域32であり、プロセス領域32にはまずスレ
ッド16−1の対応領域34−1が確保され、f1(ar
gs)内で静的変数ptr にメモリ領域38を割り当て、静
的変数ptr に割り当てた領域にアクセスし、f1(arg
s)が復帰する前に領域38を開放する。
出しによるシングルスレッドプログラム18が終了する
と、続いてスレッド16−2からの呼出しによるシング
ルスレッドプログラム18の実行でスレッド16−2の
対応領域38−2のf2(args)内で静的変数ptr にメ
モリ領域38を割り当て、静的変数ptr に割り当てた領
域38にアクセスし、f2(args)が復帰する前に領域
38を開放する。
によるシングルスレッドプログラム18の呼出しによる
静的変数50のアクセスは順番に行われるため、図14
に示したような従来の直接複数のスレッドからシングル
スレッドプログラムを呼び出して静的変数のアクセスで
競合する問題が起きることはない。
1,16−2で呼び出す別プロセスのシングルスレッド
プログラム18の中には、複数のスレッドの呼出しで実
行させるマルチスレッド動作を行っても問題を起こさな
いものがある。このようにマルチスレッド動作で呼び出
しても問題が起きないシングルスレッドプログラムにつ
いては、呼出専用スレッド20を使用して呼び出すと、
その分アクセス性能が低下する。
1,16−2でシングルスレッドプログラム18を呼び
出す際に、シングルスレッドプログラム18がマルチス
レッド動作で問題が起きずに呼出専用スレッド20を必
要としないシングルスレッドプログラムか、マルチスレ
ッド動作で問題を起こし呼出専用スレッド20を必要と
するシングルスレッド動作しかできないシングルスレッ
ドプログラムであるかを判定し、シングルスレッド動作
を必要とする場合には呼出専用スレッド20により呼び
出し、マルチスレッド動作ができる場合には呼出専用ス
レッド20をバイパスして直接シングルスレッドプログ
ラム18を呼び出すようにする。
シングルスレッドプログラム18の呼出しに呼出専用ス
レッドを必要とするか否かの判定は ユーザ指定、 環境定義テーブルの参照 のいずれかとする。
レッドプログラムがマルチスレッドによる呼出しを受け
ても問題ないことが予め判っている場合に行う。また環
境定義テーブル22には、動作対象とするシングルスレ
ッドプログラム18の識別情報に加えて呼出専用スレッ
ド20を必要とするか否かの情報が含ませておき、スレ
ッド16−1が環境定義テーブル22を参照すること
で、呼出そうとするシングルスレッドプログラム18を
環境定義テーブル22を参照することで、呼出専用スレ
ッド20を必要とするか否かが認識できる。
10にあっては、スレッド16−1または16−2でシ
ングルスレッドプログラム18を呼び出す際に生成した
呼出専用スレッド20をルートスレッド14に同期して
終了させるため、呼出専用スレッド20をルートスレッ
ド14のルートスレッドグループに属させている。
ーバアプリケーション10のマルチスレッドプログラム
の1プロセスにおいて別のプロセスのシングルスレッド
プログラム18を呼び出す唯一のスレッドとして発生し
ており、唯一のスレッドとして機能させるためにはルー
トスレッド14と同じスレッドグループに属するように
し、ルートスレッド14の終了時即ちメインプログラム
の終了時に呼出専用スレッド20が終了することを保証
する。
専用スレッド20を属させておくことで、ルートスレッ
ド14が終了する際に同じスレッドグループである呼出
専用スレッド20にも終了が通知され、これによって呼
出専用スレッドをルートスレッド14に同期して正しく
終了させることができる。
−2の終了に同期して呼出専用スレッド20を終了させ
た場合には、終了後に新たにシングルスレッドプログラ
ム18を呼び出す際に別の呼出専用スレッド20が生成
されることとなり、複数の呼出専用スレッド20が存在
することで、シングルスレッドプログラム18を呼び出
すスレッドを唯ひとつに絞るという本発明の機能が果た
せなくなる。
ートスレッド14のグループに属させておくことでRM
Iサーバアプリケーション10によるマルチスレッドプ
ログラムのプロセスに唯一のスレッドとして存在するよ
うにしている。
ョン10に設けた環境定義テーブル22の説明図であ
る。図4において、環境定義テーブル22は、動作対象
メソッドとなるシングルスレッドプログラム18を識別
するためのライブラリ名52、メソッド名54、メソッ
ドプロトタイプ56で構成され、更に呼出専用スレッド
20を必要とするか否かを判別するためのモード58を
登録している。
を必要とするシングルモードと、呼出専用スレッド20
を必要とせずにバイパスするマルチモードが設定されて
いる。即ちシングルモードとは、唯一のスレッドによる
呼出しでシングルスレッドプログラム18を実行しなけ
れば問題を起こす場合であり、これに対しマルチモード
とは複数のスレッドの並列動作でシングルスレッドプロ
グラム18を呼び出しても問題を起こさない場合であ
る。
ム18を識別する情報は、ライブラリ名52、メソッド
名54及びメソッドプロトタイプ56であり、メソッド
プロトタイプ56は復帰値の型と引数の型の並びを表わ
しており、図示のようにアルファベットの並びで表現す
ることができる。このようにメソッドプロトタイプ56
がアルファベットの並びで表現できるのは、Javaの
JNI(Java NativeInterface)で使用されているもの
である。
トタイプを文字列で表現でき、例えば、 int : 'i' pointer : 'p' structure : 's' というように文字を割当ることができる。
ルスレッドプログラム18を識別するための情報として
メソッド名54以外にメソッドプロトタイプ56を持つ
理由は、同一ライブラリの中にプロトタイプが異なる同
じ名前のメソッドの存在を許しているシステムがあるた
めである。
用者は、予め与えられた別の情報から、そのメソッドが
マルチスレッド・セーフか否か判断した上で、環境情報
テーブル22のモードを指定する。マルチスレッド・セ
ーフか否かの判断は、ソースコードの解析結果、マルチ
スレッドでの動作を保証しているライブラリのメソッド
等に基づいて行う。
のスレッド16−1または16−2がシングルスレッド
プログラム18を呼び出す際に前もって参照され、呼出
対象メソッド名に対応するモードから、もしシングルモ
ードであれば呼出専用スレッド20を使用してシングル
スレッドプログラム18を呼び出し、マルチモードであ
れば直接シングルスレッドプログラム18を呼び出す。
ては、少なくともメソッドプロトタイプ56又はメソッ
ド名54でよい。
に設けられたイベントキュー26の格納状態であり、呼
出専用スレッド20が参照するシングルスレッドプログ
ラム18を動作対象とした識別情報テーブルとして機能
する。
出メソッドを特定する情報として、ライブラリ名52、
メソッド名54、メソッドプロトタイプ56及び復帰値
・引数(配列)60が格納されている。更に呼出元のス
レッドを特定するための呼出元スレッドID62を設け
ている。この呼出元スレッドID62は、Javaの場
合はスレッドの参照(ポインタ)を使用する。
スレッドプログラム18を実行するのに必要な復帰値及
び引数の値を設定する。この復帰値及び引数の値はJa
vaではオブジェクトの配列の形式で設定する。また復
帰値及び引数の値は直値の場合と構造体等へのポインタ
の場合があるが、どの要素が直値でどの要素が構造体等
へのポインタであるかはメソッドプロトタイプ56から
判断する。
されたシングルスレッドプログラム18の実行結果とし
て復帰値や引数の領域に値が帰ってきた場合、復帰値・
引数(配列)60の領域に値を設定し、呼出元スレッド
IDで指定されるスレッドに値を返してマルチスレッド
プログラム18の終了を通知する。
っては、スレッドにより投入された3つの同期イベント
28−1,28−2,28−3が投入順に従って上から
下に配列された場合である。
−2から呼出専用スレッド20のイベントキュー26に
投入される同期イベント28は、図5(B)に取り出し
て示すように、ライブラリ名52、メソッド名54、メ
ソッドプロトタイプ56、復帰値・引数(配列)60及
び呼出元スレッドID62を1レコードとした情報であ
る。
情報であるライブラリ名52、メソッド名54及びメソ
ッドプロトタイプ56は、図4に示した環境定義テーブ
ル22の参照で取得することができ、復帰値・引数(配
列)60及び呼出元スレッドID62はシングルスレッ
ドプログラム18を呼び出そうとするスレッド16−
1,16−2自身で生成されるパラメータである。尚、
同期イベント28は、少なくともメソッド名54と呼出
元メソッド名62を格納するものであればよい。
ベントキュー26に投入された同期イベントの他の格納
状態であり、この実施形態にあっては図5の同期イベン
トに更に動作対象とするメソッドのグループに関する情
報と優先度を設けたことを特徴とする。
の同期イベント28−1〜28−4が投入された状態で
あり、ライブラリ名52、メソッド名54、メソッドプ
ロトタイプ56、復帰値・引数(配列)60、呼出元ス
レッドID62に加えて、グループ64と優先度66を
設けている。
28−1〜28−4のうち、2番目と4番目の同期イベ
ント28−2,28−4はグループが「UI」と同じで
あり、優先度がそれぞれ異なる「−1」と「+1」を設
定している。
けた同期イベント28−2,28−4については、同期
イベント28−4が一番下に新たにキューイングされた
タイミングで、同一グループの同期イベント28−2が
あることから両者の優先度で比較し、図6(B)のよう
に優先度の高い同期イベント28−4を上から2番目の
位置に置き換え、優先度の低い同期イベント28−2を
4番目の位置に並べ換える。
ソッド、即ちシングルスレッドプログラムであった場合
には、優先度の高い同期イベントをイベントキューの高
い位置に並び換えることで、優先度が高いほどグループ
内で優先的にシングルスレッドプログラムを呼び出して
実行することができるように制御できる。
10によるマルチスレッド処理を図7乃至図10のフロ
ーチャートを参照して説明する。
0におけるマルチスレッド処理の全体的な処理動作のフ
ローチャートである。まずRMIサーバアプリケーショ
ン10として提供されるマルチスレッドプログラムを起
動すると、ステップS1でルートスレッド14が生成さ
れる。
S2でクライアント12−1,12−2より遠隔メソッ
ド起動RMIによるメソッド呼出しが行われ、このメソ
ッド呼出しを受けると、ステップS3でユーザスレッド
として例えばスレッド16−1を生成する。続いてステ
ップS4で現在生成しているスレッドを並列的に実行す
る処理を行い、ステップS5でルートメソッドの終了が
あるまで、ステップS2からの処理を繰り返す。
ント12−1,12−2からRMI呼出しによるメソッ
ド呼出しを受けるごとにスレッドを生成して処理を並列
的に実行する。ステップS5でルートスレッドの終了が
判別されると、ステップS6に進み、ルートスレッド自
身の処理を終了すると同時に、ルートスレッドグループ
に属する他のスレッドに終了を通知してマルチスレッド
処理を終了させる。
ーザスレッドの生成実行処理のフローチャートである。
まずステップS1でルートスレッド14がRMI呼出し
によるメソッド呼出しを受けてユーザスレッド例えばユ
ーザスレッド16−1を生成し、ステップS2で生成し
たユーザスレッド16−1を含む複数のスレッドの処理
を並列的に行う。
1においてシングルスレッドプログラム18の呼出実行
か否かチェックする。シングルスレッドプログラム18
の呼出実行であれば、ステップS4に進み、環境定義テ
ーブル22を参照し、動作対象とするスレッド名からそ
のモードを読み取ることで、シングルモード即ちシング
ルスレッド動作を必要とするか否かチェックする。
レッド動作、即ち呼出専用スレッドを必要とする場合に
は、ステップS5に進み、既に呼出専用スレッド20が
生成されているか否かチェックする。もし呼出専用スレ
ッド20が生成されていなければ、ステップS6で呼出
専用スレッド20を生成する。
期イベントを生成し、呼出専用スレッド20のイベント
キュー26に投入し、ステップS8で同期イベント終了
待ちとなる。ステップS8において、シングルスレッド
プログラム18の実行終了で関数や引数の復帰に伴い同
期イベントの終了を受けると、ステップS9に進み、ス
レッド終了の有無をチェックし、スレッド終了でなけれ
ば再びステップS2に戻り、スレッド16−1の処理を
続行する。
ッドプログラム18の呼出実行のために環境定義テーブ
ル22を参照し、シングルスレッド動作を必要としない
即ち呼出専用スレッドを必要としないマルチモードであ
った場合には、ステップS5〜S8の処理を行わず、ス
テップS10にバイパスし、呼出専用スレッド20を使
用せずに直接外部のシングルスレッドプログラムを呼び
出して実行し、ステップS11で終了通知を待って、再
びステップS2の処理に戻る。
は、図2に示したスレッド16−1,16−2のそれぞ
れの処理として並列的に実行されている。
出専用スレッド20の生成処理のフローチャートであ
る。この呼出専用スレッド20の生成処理は、ステップ
S1で生成元のスレッド例えば最初にシングルスレッド
プログラム18を呼び出そうとしたスレッド16−1を
現在のスレッドとして取得し、ステップS2で現在のス
レッド16−1のスレッドグループを取得する。
プに親スレッドグループがあるか否かチェックする。図
2の場合には、スレッド16−1に対しルートスレッド
14の親スレッドグループがあることから、ステップS
4に進み、親スレッドグループを現在のスレッドグルー
プとする。
レッドグループとしたルートスレッドグループに親スレ
ッドグループがあるか否かチェックする。この場合には
親スレッドグループがないことから、ステップS5に進
み、呼出専用スレッド20を生成し、生成した呼出専用
スレッドを現在のスレッドグループ即ち、ステップS
3,S4の処理で特定された最上位の親スレッドグルー
プ即ちルートスレッドグループに追加する。この図9の
処理によって生成された呼出専用スレッド20は、ルー
トスレッド14として動作することになる。
ラム18を呼出すために唯一生成した呼出専用スレッド
20の処理動作のフローチャートである。この呼出専用
スレッド20の処理にあっては、まずステップS1でス
レッド16−1,16−2からのシングルスレッドプロ
グラム18の呼出しを行うための同期イベントの受領を
チェックしており、同期イベントを受領すると、ステッ
プS2でイベントキュー26に受領順に同期イベントを
格納する。
空か否かチェックしており、空でなければステップS4
に進み、イベントキュー26の先頭の同期イベントを取
り出し、ステップS5で同期イベントの情報から外部の
シングルスレッドプログラム18を呼び出して実行す
る。
終了すると関数や引数が復帰してくることから、これに
よってステップS6で呼出プログラムの終了を認識し、
ステップS7で呼出元メソッドに同期イベントの終了を
通知する。この同期イベントの終了にはシングルスレッ
ドプログラム18の終了で復帰した関数や引数の値が含
まれている。
終了通知をチェックしており、呼出専用スレッド20は
図9の生成処理によってルートスレッド14のグループ
に属していることから、ルートスレッドからの終了通知
を受けて呼出専用スレッド20の処理を終了する。
理装置の他の実施形態であり、クライアントのスレッド
によってサーバからダウンロードしたアプレットが呼出
専用スレッドを使用してシングルスレッドプログラムを
呼び出す実施形態を例にとっている。
ラウザ44が設けられており、メソッド呼出しによって
スレッド16−1,16−2が生成される。スレッド1
6−1,16−2はWWWサーバ40をアクセスし、ア
プレット46−1,46−2をそれぞれダウンロードし
て並列的に実行する。
プレット46−1,46−2が実行されている場合、そ
れぞれのアプレット46−1,46−2が同じシングル
スレッドプログラム18を呼び出す場合がある。このよ
うな場合、本発明にあっては、例えば最初にアプレット
46−1がシングルスレッドプログラム18を呼び出そ
うとした場合に呼出専用スレッド20を生成し、シング
ルスレッドプログラム18を呼び出すための同期イベン
トを生成してイベントキュー26に投入する。
6から同期イベントを取り出し、同期イベントに基づい
てシングルスレッドプログラム18を実行し、実行終了
を待って次の同期イベントをイベントキュー26から取
り出してシングルスレッドプログラム18を実行するこ
とになる。
同じシングルスレッドプログラム18を呼び出しても、
アプレット46−1,46−2の呼出し順に従ってシン
グルスレッドプログラム18が実行され、複数のアプレ
ットにより同じシングルスレッドプログラム18のアク
セスが競合することは起きない。
シングルスレッドプログラム18を呼び出す際に環境定
義テーブル22を参照し、図4のようにモード52がシ
ングルモードであれば呼出専用スレッド20を使用した
シングルスレッドプログラム18の呼出しを行い、これ
に対しマルチモードであれば呼出専用スレッド20を使
用せずにバイパスし、直接シングルスレッドプログラム
18を呼び出して実行するようになる。
イベントキュー26の内容は、図5のグループと優先度
を持たない場合あるいは図6のグループと優先度を設け
た場合のいずれの場合も同様に適用される。
ルチスレッド処理の全体的な処理動作のフローチャート
である。図12において、クライアント42のブラウザ
44を起動すると、ステップS1で図示しないルートス
レッドが生成される。この状態でメソッド呼出しをステ
ップS2で判別すると、ルートスレッドが例えば呼出し
ごとにスレッド16−1,16−2を生成する。
は、ステップS4でWWWサーバ40をアクセスしてア
プレット46−1,46−2をダウンロードする。そし
てブラウザ44上でステップS5のように複数のアプレ
ット46−1,46−2を並列に実行する。
実行において動的ライブラリとしてのシングルスレッド
プログラム18を呼び出す場合があり、この場合には呼
出専用スレッド20を生成し、そのイベントキュー26
に同期イベントを投入し、イベントキュー26からの同
期イベントの先入れ,先出しによる取出しでアプレット
46−1,46−2の呼出要求の順番にシングルスレッ
ドプログラム18を実行する。
をチェックしており、ブラウザ44が終了すると、ステ
ップS7でルートスレッドグループのスレッドに終了を
通知して一連の処理を終了する。このルートスレッドグ
ループにはブラウザ44の中で唯一存在している呼出専
用スレッド20も含まれており、ブラウザの終了に同期
して呼出専用スレッド20も終了することになる。
WWブラウザからダウンロードする以外は図8のユーザ
スレッド生成実行処理と同じであり、またアプレットで
生成する呼出専用スレッドの生成処理は図9のフローチ
ャートと同じであり、更に生成した呼出専用スレッドに
よるシングルスレッドプログラムの呼出処理は図10の
フローチャートと同じになる。
格納したコンピュータ可読の記録媒体を提供するもので
あり、この記録媒体の実施形態としてはCD−ROMや
フロッピディスク等のリムーバブルな可搬型記録媒体、
回線によりプログラムを提供するプログラム提供者の記
憶装置、更にプログラムをインストールした処理装置の
RAMやハードディスク等のメモリ装置がある。また、
記録媒体によって提供されたマルチスレッド処理プログ
ラムは処理装置にローディングされ、その主メモリ上で
実行される。
の標準で付属している手法である遠隔メソッド起動RM
Iによる分散実行を例にとるものであったが、CORB
A(Common Object Request Broker Architecture )を
採用した一部のCORBAサーバの分散実行において
も、同様にマルチスレッドプログラムが別プロセスのシ
ングルスレッドプログラム18を呼び出す場合があるの
で、このCORBAサーバの分散実行についても本発明
の呼出専用スレッド20を生成して呼び出す手順をその
まま適用することができる。
ず、その目的と利点を損なわない適宜の変形を含む。更
に本発明は上記実施形態に示した数値による限定は受け
ない。
ば、マルチスレッドプログラムからシングルスレッドプ
ログラムを呼び出す際に別プロセスを生成する必要がな
いため、処理負担を低減し、実行性能を向上することが
できる。
ログラムからシングルスレッドプログラムを呼び出す際
に、シングルスレッドプログラムをマルチスレッドプロ
グラムに作り直す必要がないため、プログラムの開発効
率を向上することができる。
プログラムを呼び出す唯一の呼出専用スレッドをルート
スレッド(メインスレッド)と同じスレッドグループに
属するようにし、メインプログラムの終了時に呼出専用
スレッドの終了を保証することでマルチプログラムのプ
ロセスに複数の専用スレッドが存在することを防ぎ、唯
一の呼出専用スレッドを存在させることでシングルスレ
ッドプログラム18に対するアクセスを全てシングルス
レッド動作で行うことができる。
プログラムの中にはマルチスレッドで動作しても問題を
起こすことのないプログラムがあることから、呼出専用
スレッドを必要とするか否か判断し、必要のない場合に
は呼出専用スレッドをバイパスして直接シングルスレッ
ドプログラムを呼び出すことで、マルチスレッド動作に
よる呼出しで問題のないシングルスレッドプログラムを
呼び出す場合の実行性能を向上させることができる。
ケーションのマルチスレッドプログラムを実行する本発
明の第1実施形態のブロック図
レッドプログラムの静的変数をアクセスした場合の説明
図
ッドの必要性の有無の判定に使用する環境定義テーブル
の説明図
を呼出す際に使用する識別情報テーブルと呼出専用スレ
ッドに投入する同期イベントの説明図
先度を設定した同期イベントの説明図
レッド処理のフローチャート
細フローチャート
細フローチャート
のフローチャート
ロードしたアプレットが呼出専用スレッドを使用してシ
ングルスレッドプログラムを呼出す実施形態のブロック
図
のフローチャート
リケーションのマルチスレッドプログラムを実行する従
来例のブロック図
プログラムの静的変数をアクセスした場合の説明図
ロードしたアプレットが専用スレッドを使用してシング
ルスレッドプログラムを呼出す従来例のブロック図
プログラム) 12,12−1,12−2:クライント 14:ルートスレッド(メインスレッド) 16,16−1,16−2:スレッド(ユーザスレッ
ド) 18:シングルスレッドプログラム 20:呼出専用スレッド 22:環境定義テーブル 26:イベントキュー 28:同期イベント 30:主記憶 32:プロセス領域 34−1,34−2:スレッド対応領域 36:データ領域 38:静的関数割当領域 40:WWWサーバ 42:クライアント 44:ブラウザ 46−1,46−2:アプレット
Claims (9)
- 【請求項1】複数のスレッドを並行して実行可能なマル
チスレッドプログラムからシングルスレッドプログラム
を呼出して実行するマルチスレッド処理装置に於いて、 前記マルチスレッドプログラムの特定の1スレッドによ
り前記シングルスレッドプログラムを最初に呼出して実
行する際に生成され、前記シングルスレッドブログラム
を呼出す唯一の呼出専用スレッドを備えたことを特徴と
するマルチスレッド処理装置。 - 【請求項2】請求項1記載のマルチスレッド処理装置に
於いて、前記呼出専用スレッドは、前記マルチスレッド
プログラムで生成された複数のスレッドから呼出された
順に前記シングルスレッドプログラムを呼出すことを特
徴とするマルチスレッド処理装置。 - 【請求項3】請求項2記載のマルチスレッド処理装置に
於いて、前記呼出専用スレッドは、前記マルチスレッド
プログラムのスレッドの呼出要求として投入される同期
イベントを格納する先入れ先出し構成(FIFO構成)のイ
ベントキューを備え、前記イベントキューから同期イベ
ントを順番に取出して前記シングルスレッドプログラム
を実行することを特徴とするマルチスレッド処理装置。 - 【請求項4】請求項1記載のマルチスレッド処理装置に
於いて、前記呼出専用スレッドのイベントキューに投入
される同期イベントは、呼出すシングルスレッドプログ
ラムを特定するための情報として、少なくともメソッド
名及び呼出元スレッドIDを格納したレコードであるこ
とを特徴とするマルチスレッド処理装置。 - 【請求項5】請求項1記載のマルチスレッド処理装置に
於いて、前記呼出専用スレッドは、前記マルチスレッド
プログラムで生成した最上位スレッド(ルートスレッド
又はメインスレッド)のグループに属すことで、前記最
上位スレッドの終了に同期して終了することを特徴とす
るマルチスレッド処理装置。 - 【請求項6】請求項1記載のマルチスレッド処理装置に
於いて、前記マルチスレッドプログラムのスレッドは、
前記シングルスレッドプログラムを呼出す際に前記呼出
専用スレッドが必要か否か判定し、必要とする場合は前
記呼出専用スレッドを使用して呼出し、必要としない場
合は前記シングルスレッドプログラムを直接呼出すこと
を特徴とするマルチスレッド処理装置。 - 【請求項7】請求項6記載のマルチスレッド処理装置に
於いて、前記マルチスレッドプログラムのスレッドは、
前記シングルメソッドプログラムのメソッドプロトタイ
プ又はメソッドに対応して前記読出専用スレッドの必要
の有無を記述した環境定義テーブル、又はユーザ指定に
基づいて、前記呼出専用スレッドが必要か否かを判定す
ることを特徴とするマルチスレッド処理装置。 - 【請求項8】複数のスレッドを並行して実行可能なマル
チスレッドプログラムからシングルスレッドプログラム
を呼出して実行するマルチスレッド処理方法に於いて、 前記マルチスレッドプログラムの特定の1スレッドによ
り前記シングルスレッドプログラムを最初に呼出して実
行する際に、前記シングルスレッドブログラムを呼出す
唯一の呼出専用スレッドを生成し、生成後は前記呼出専
用スレッドを使用して前記シングルスレッドプログラム
を呼出すことを特徴とするマルチメソッド処理方法。 - 【請求項9】複数のスレッドを並行して実行可能なマル
チスレッドプログラムからシングルスレッドプログラム
を呼出して実行するマルチスレッド処理プログラムを格
納したコンピュータ可読の記録媒体に於いて、 前記マルチスレッド処理プログラムに、前記マルチスレ
ッドプログラムの特定の1スレッドにより前記シングル
スレッドプログラムを最初に呼出して実行する際に生成
され、前記シングルスレッドブログラムを呼出す唯一の
呼出専用スレッドを設けたことを特徴とするコンピュー
タ可読の記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22830899A JP3807588B2 (ja) | 1999-08-12 | 1999-08-12 | マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体 |
US09/468,490 US6857122B1 (en) | 1999-08-12 | 1999-12-20 | Multi-thread processing apparatus, processing method and record medium having multi-thread processing program stored thereon |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22830899A JP3807588B2 (ja) | 1999-08-12 | 1999-08-12 | マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001051860A true JP2001051860A (ja) | 2001-02-23 |
JP3807588B2 JP3807588B2 (ja) | 2006-08-09 |
Family
ID=16874416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22830899A Expired - Fee Related JP3807588B2 (ja) | 1999-08-12 | 1999-08-12 | マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6857122B1 (ja) |
JP (1) | JP3807588B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362564A (ja) * | 2003-05-30 | 2004-12-24 | Sharp Corp | 統一イベント通知およびコンシューマ−プロデューサメモリ演算による仮想プロセッサ方法および装置 |
JP2008027344A (ja) * | 2006-07-25 | 2008-02-07 | Nec Access Technica Ltd | オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法 |
JP2017045304A (ja) * | 2015-08-27 | 2017-03-02 | コニカミノルタ株式会社 | 画像形成装置及び画像形成装置の制御プログラム |
CN116627549A (zh) * | 2023-05-30 | 2023-08-22 | 云海链控股股份有限公司 | Sgx多线程下通用的函数调用方法、装置、设备及介质 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2343437A1 (en) * | 2001-04-06 | 2002-10-06 | Ibm Canada Limited-Ibm Canada Limitee | Method and system for cross platform, parallel processing |
US7299471B2 (en) * | 2002-04-17 | 2007-11-20 | International Business Machines Corporation | Common thread server |
US7076616B2 (en) * | 2003-03-24 | 2006-07-11 | Sony Corporation | Application pre-launch to reduce user interface latency |
US8376855B2 (en) | 2004-06-28 | 2013-02-19 | Winview, Inc. | Methods and apparatus for distributed gaming over a mobile device |
US8870639B2 (en) | 2004-06-28 | 2014-10-28 | Winview, Inc. | Methods and apparatus for distributed gaming over a mobile device |
US10226698B1 (en) | 2004-07-14 | 2019-03-12 | Winview, Inc. | Game of skill played by remote participants utilizing wireless devices in connection with a common game event |
US7921365B2 (en) | 2005-02-15 | 2011-04-05 | Microsoft Corporation | System and method for browsing tabbed-heterogeneous windows |
US10721543B2 (en) | 2005-06-20 | 2020-07-21 | Winview, Inc. | Method of and system for managing client resources and assets for activities on computing devices |
JP2008547122A (ja) | 2005-06-20 | 2008-12-25 | エアプレイ ネットワーク インコーポレイテッド | サービス提供方法、データ受信方法、データ提供システム、クライアント装置及びサーバ装置 |
US9919210B2 (en) | 2005-10-03 | 2018-03-20 | Winview, Inc. | Synchronized gaming and programming |
US8705195B2 (en) | 2006-04-12 | 2014-04-22 | Winview, Inc. | Synchronized gaming and programming |
US8149530B1 (en) | 2006-04-12 | 2012-04-03 | Winview, Inc. | Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming |
US9511287B2 (en) | 2005-10-03 | 2016-12-06 | Winview, Inc. | Cellular phone games based upon television archives |
US20070088680A1 (en) * | 2005-10-14 | 2007-04-19 | Microsoft Corporation | Simultaneously spawning multiple searches across multiple providers |
US8002618B1 (en) | 2006-01-10 | 2011-08-23 | Winview, Inc. | Method of and system for conducting multiple contests of skill with a single performance |
US10556183B2 (en) | 2006-01-10 | 2020-02-11 | Winview, Inc. | Method of and system for conducting multiple contest of skill with a single performance |
US9056251B2 (en) | 2006-01-10 | 2015-06-16 | Winview, Inc. | Method of and system for conducting multiple contests of skill with a single performance |
US11082746B2 (en) | 2006-04-12 | 2021-08-03 | Winview, Inc. | Synchronized gaming and programming |
US8813112B1 (en) | 2007-10-23 | 2014-08-19 | Winview, Inc. | Method of and apparatus for utilizing SMS while running an application on a mobile device controlling a viewer's participation with a broadcast |
CN101442458B (zh) * | 2007-11-23 | 2011-03-23 | 深圳富泰宏精密工业有限公司 | 序列式数据发送系统及方法 |
US8677018B2 (en) * | 2008-08-25 | 2014-03-18 | Google Inc. | Parallel, side-effect based DNS pre-caching |
US9716918B1 (en) | 2008-11-10 | 2017-07-25 | Winview, Inc. | Interactive advertising system |
US11551529B2 (en) | 2016-07-20 | 2023-01-10 | Winview, Inc. | Method of generating separate contests of skill or chance from two independent events |
US11308765B2 (en) | 2018-10-08 | 2022-04-19 | Winview, Inc. | Method and systems for reducing risk in setting odds for single fixed in-play propositions utilizing real time input |
CN112988365B (zh) * | 2021-05-21 | 2021-09-14 | 北京国科环宇科技股份有限公司 | 一种线程管理方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
JPH1049381A (ja) * | 1996-07-04 | 1998-02-20 | Internatl Business Mach Corp <Ibm> | 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム |
US6081906A (en) * | 1997-11-21 | 2000-06-27 | Fuji Xerox Co., Ltd. | Multi-thread processing with queuing and recovery |
US6493740B1 (en) * | 1998-06-16 | 2002-12-10 | Oracle Corporation | Methods and apparatus for multi-thread processing utilizing a single-context architecture |
US6493433B2 (en) * | 1998-07-07 | 2002-12-10 | Mci Communications Corporation | Multi-threaded database system for an interactive voice response platform |
-
1999
- 1999-08-12 JP JP22830899A patent/JP3807588B2/ja not_active Expired - Fee Related
- 1999-12-20 US US09/468,490 patent/US6857122B1/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362564A (ja) * | 2003-05-30 | 2004-12-24 | Sharp Corp | 統一イベント通知およびコンシューマ−プロデューサメモリ演算による仮想プロセッサ方法および装置 |
US8087034B2 (en) | 2003-05-30 | 2011-12-27 | Steven J. Frank | Virtual processor methods and apparatus with unified event notification and consumer-produced memory operations |
US8271997B2 (en) | 2003-05-30 | 2012-09-18 | Steven J. Frank | General purpose embedded processor |
US8621487B2 (en) | 2003-05-30 | 2013-12-31 | Steven J. Frank | Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations |
JP2008027344A (ja) * | 2006-07-25 | 2008-02-07 | Nec Access Technica Ltd | オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法 |
JP2017045304A (ja) * | 2015-08-27 | 2017-03-02 | コニカミノルタ株式会社 | 画像形成装置及び画像形成装置の制御プログラム |
US10523829B2 (en) | 2015-08-27 | 2019-12-31 | Konica Minolta, Inc. | Image forming device and control program of image forming device |
CN116627549A (zh) * | 2023-05-30 | 2023-08-22 | 云海链控股股份有限公司 | Sgx多线程下通用的函数调用方法、装置、设备及介质 |
CN116627549B (zh) * | 2023-05-30 | 2024-03-26 | 云海链控股股份有限公司 | Sgx多线程下通用的函数调用方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US6857122B1 (en) | 2005-02-15 |
JP3807588B2 (ja) | 2006-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001051860A (ja) | マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体 | |
US6560626B1 (en) | Thread interruption with minimal resource usage using an asynchronous procedure call | |
EP0767938B1 (en) | Method for enforcing a hierarchical invocation structure in real time asynchronous software applications | |
US5958003A (en) | Method and computer system for improving the response time of a computer system to a user request | |
US6401138B1 (en) | Interface for patient context sharing and application switching | |
US6948172B1 (en) | Preemptive multi-tasking with cooperative groups of tasks | |
US7280558B1 (en) | Asynchronous pattern | |
US20040199927A1 (en) | Enhanced runtime hosting | |
US20070226715A1 (en) | Application server system and computer product | |
US6470346B2 (en) | Remote computation framework | |
US20030014463A1 (en) | Task management system | |
JPH0477938B2 (ja) | ||
US20120042327A1 (en) | Method and System for Event-Based Remote Procedure Call Implementation in a Distributed Computing System | |
JPH0283627A (ja) | インタプリタ | |
JPH1049381A (ja) | 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム | |
US20040138847A1 (en) | Stress testing at low cost through parallel execution of unit tests | |
JP2008529113A (ja) | アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム | |
JP2004288162A (ja) | 同期タスクを利用したオペレーティングシステムアーキテクチャ | |
US6295602B1 (en) | Event-driven serialization of access to shared resources | |
US6810503B1 (en) | Method and apparatus for controlling the timing of the invocation of events within a computer runtime environment | |
US20040199571A1 (en) | Serving concurrent TCP/IP connections of multiple virtual Internet users with a single thread | |
Finkelstein et al. | Real time threads interface | |
US7191443B2 (en) | Digital device, task management method and program therefor | |
RU2316043C2 (ru) | Механизм и способ предоставления информации событий в системе доступа | |
US6874027B1 (en) | Low-overhead threads in a high-concurrency system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051206 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060203 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060418 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060511 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090526 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110526 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |