特定の装置は複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当て、前記複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を取得し、前記複数の装置から前記複数のスレッドの実行結果を受け付け終わったときの第2時刻情報と前記第1時刻情報とに基づいて、前記複数の装置の前記特定の装置および前記複数の装置で共有される共有メモリへのアクセス権の優先度を設定することを特徴とするスレッド処理方法。前記アクセス権の優先度に関する情報が前記複数の装置に通知されることを特徴とする請求項1に記載のスレッド処理方法。前記第1時刻情報と前記第2時刻情報とに基づいて前記複数の装置のそれぞれの所定時間を算出し、前記所定時間に基づいて前記アクセス権の優先度を設定することを特徴とする請求項1または請求項2に記載のスレッド処理方法。前記所定時間が小さいとき前記共有メモリへのアクセス権の優先度を高くすることを特徴とする請求項2に記載のスレッド処理方法。複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当てるスケジューラと、前記複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報と、前記複数の装置から前記複数のスレッドの実行結果を受け付け終わったときの第2時刻情報とに基づいて、前記複数の装置の所定時間を算出する算出部と、前記所定情報に基づいて、前記複数の装置の前記特定の装置および前記複数の装置で共有される共有メモリへのアクセス権の優先度を設定する設定部と、を含むことを特徴とするスレッド処理システム。前記アクセス権の優先度を前記複数の装置に通知する通知部を含むことを特徴とする請求項5に記載のスレッド処理システム。前記共有メモリへのアクセスを制御するメモリコントローラを前記アクセス権の優先度に応じて制御する制御部を含むことを特徴とする請求項5または請求項6に記載のスレッド処理システム。上述した従来技術において、複数の分散処理、並列処理を実行する場合、複数の端末装置で同期処理を行いながら処理を実行することがある。同期処理とは、複数のスレッドの処理を特定のコード位置までで一旦停止させ、全てのスレッドが特定のコード位置に到達した際に、次の処理を継続する処理である。停止中となったスレッドを実行している端末装置は、同期待ちの状態となる。このとき、各スレッドが割り当てられた端末装置の処理性能や通信速度が異なる場合、処理性能、通信速度が高い端末装置での同期待ちの時間が長くなり、システム全体の処理性能が低下するという問題があった。本発明は、上述した従来技術による問題点を解消するため、同期処理に伴うシステム全体の処理性能の低下を抑止するスレッド処理方法、およびスレッド処理システムを提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一側面によれば、特定の装置は複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当て、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を取得し、複数の装置から複数のスレッドの実行結果を受け付け終わったときの第2時刻情報と第1時刻情報とに基づいて、複数の装置の特定の装置および複数の装置で共有される共有メモリへのアクセス権の優先度を設定するスレッド処理方法、およびスレッド処理システムが提案される。本発明の一側面によれば、同期処理に伴うシステム全体の処理性能の低下を抑止できるという効果を奏する。以下に添付図面を参照して、開示のスレッド処理方法、およびスレッド処理システムの実施の形態を詳細に説明する。図1は、スレッド処理システム100の動作例を示す説明図である。符号101で示す説明図は、共有メモリへのアクセス権の優先度が設定されていない状態でのスレッド処理システム100の動作例を示している。また、符号102で示す説明図は、共有メモリへのアクセス権の優先度が設定されている状態でのスレッド処理システム100の動作例を示している。スレッド処理システム100は、携帯電話や携帯端末等といった端末装置103を複数含む。たとえば、図1で示すスレッド処理システム100は、端末装置1030~端末装置1032を含む。以下、接尾記号nが付随された記号は、n番目の端末装置103に対応する記号であることを示している。端末装置1030~端末装置1032は、無線LANLocalAreaNetwork、Bluetooth登録商標等の無線通信によって接続されている。また、端末装置1030~端末装置1032は、仮想共有メモリ104にアクセス可能である。端末装置1030~端末装置1032は、仮想共有メモリ104にアクセスすることで複数のスレッドを同期しつつ実行する。なお、仮想共有メモリ104の格納箇所は、端末装置1030~端末装置1032内の記憶領域の一部となる。また、スレッド処理システム100全体を制御するマスタ端末装置が端末装置1030となり、マスタ端末装置によって制御されるスレーブ端末装置が端末装置1031、端末装置1032であることを想定する。また、端末装置1032は高処理性能であり、端末装置1031は低処理性能であり、端末装置1030は、端末装置1031と端末装置1032の中間の処理性能を有していることを想定する。このような状態で、符号101で示す説明図では、端末装置1030が、時刻t0以降にて、端末装置1031にスレッド1を割り当て、端末装置1032にスレッド2を割り当てる。端末装置1031、端末装置1032は、割り当てられたスレッドを実行する。また、端末装置1030は、自身にもスレッド0を割り当てて実行する。端末装置1030~端末装置1032は、端末装置間で同期を取るために、スレッド0~スレッド2が全て終了する時刻t1まで待機する。高性能である端末装置1032はスレッド2を早く終了し、実行結果を端末装置1030に通知した後、同期待ち状態となる。端末装置1032による通知後、端末装置1030は、スレッド2の実行結果を受け付ける。続けて、中性能である端末装置1030がスレッド0を終了する。最後に、低性能である端末装置1031がスレッド1を終了し、実行結果を端末装置1030に通知する。端末装置1031による通知後、端末装置1030は、スレッド1の実行結果を受け付ける。結果、符号101で示すスレッド処理システム100は、端末装置1031がボトルネックとなったため、端末装置1032の同期待ち時間が長くなり、スレッド処理システム100全体の処理性能が低下している状態である。また、端末装置1031は、同期待ち時間が短くなり、端末装置1030の同期待ち時間は、端末装置1031と端末装置1032の中間となる。次に、符号102で示す説明図は、仮想共有メモリ104へのアクセス権の優先度を端末装置1030~端末装置1032に設定した状態である。具体的には、符号101で示すスレッド処理システム100にて実行結果の通知が遅かった端末装置1031を、スレッド処理システム100は、優先度:高に設定する。また、スレッド処理システム100は、実行終了の時刻が中程度となった端末装置1030を優先度:中に設定し、実行結果の通知が早かった端末装置1030を優先度:低に設定する。このようなアクセス権の優先度を設定することで、たとえば、端末装置1031と端末装置1033が同時に仮想共有メモリ104にアクセスした場合、端末装置1031が優先して仮想共有メモリ104にアクセスするようになる。これにより、符号102で示す端末装置1031は、符号101で示す端末装置1031より、スレッド1を早く終了することができる。スレッド1が早く終了することで、同期待ちが終了する時刻がt1からt1’となり、端末装置1030、端末装置1032の同期待ち時間が短縮されるため、スレッド処理システム100の処理性能が向上することになる。図2は、スレッド処理システム100内の接続例を示す説明図である。図2で示すスレッド処理システム100は、図1で示した端末装置1030~端末装置1032に加えて、端末装置1033を含む。端末装置1033は、端末装置1032と同等の処理性能となることを想定する。また、端末装置1030~端末装置1033は、無線通信で接続されている。端末装置1030と端末装置1032間、端末装置1030と端末装置1033間、端末装置1032と端末装置1033間は、無線LANといった高速通信で接続されている。また、端末装置1030と端末装置1031間、端末装置1031と端末装置1032間、端末装置1031と端末装置1033間は、Bluetooth登録商標といった低速通信で接続されている。図3は、実施の形態にかかる端末装置1030のハードウェアを示すブロック図である。なお、端末装置1031~端末装置1033は、端末装置1030と処理性能が異なるが同一のハードウェアを含むため、説明を省略する。また、図3の説明に登場するハードウェアは、全て端末装置1030に含まれているため、説明の簡略化のため接尾記号0を省略する。図3において、端末装置1030は、CPU301と、ROMRead‐OnlyMemory302と、RAMRandomAccessMemory303と、を含む。また、端末装置1030は、フラッシュROM304と、フラッシュROMコントローラ305と、フラッシュROM306と、を含む。また、端末装置1030は、ユーザやその他の機器との入出力装置として、ディスプレイ307と、I/FInterface308と、キーボード309と、を含む。また、各部はバス310によってそれぞれ接続されている。ここで、CPU301は、端末装置1030の全体の制御を司る。また、CPU301は、専用のキャッシュメモリを有してもよい。また、端末装置103は、複数のコアを含むマルチコアプロセッサシステムであってもよい。なお、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。また、RAM303とバス310は、メモリコントローラ311で接続されている。メモリコントローラ311は、CPU301によるRAM303へのアクセスの制御をする。また、メモリコントローラ311は、RAM303以外にも、ROM302、フラッシュROM304などのアクセスを制御してもよい。フラッシュROM304は、読出し速度が高速なフラッシュROMであり、たとえば、NOR型フラッシュメモリである。たとえば、フラッシュROM304は、OSOperatingSystemなどのシステムソフトウェアやアプリケーションソフトウェアなどを記憶している。たとえば、OSを更新する場合、端末装置1030は、I/F308によって新しいOSを受信し、フラッシュROM304に格納されている古いOSを、受信した新しいOSに更新する。フラッシュROMコントローラ305は、CPU301の制御に従ってフラッシュROM306に対するデータのリード/ライトを制御する。フラッシュROM306は、データの保存、運搬を主に目的としたフラッシュROMであり、たとえば、NAND型フラッシュメモリである。フラッシュROM306は、フラッシュROMコントローラ305の制御で書き込まれたデータを記憶する。データの具体例としては、端末装置1030を使用するユーザがI/F308を通して取得した画像データ、映像データや、また本実施の形態にかかるスレッド処理方法を実行するプログラムなどである。フラッシュROM306は、たとえば、メモリカード、SDカードなどを採用することができる。ディスプレイ307は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ307は、たとえば、TFTThinFilmTransistor液晶ディスプレイなどを採用することができる。I/F308は、通信回線を通じてLAN、WANWideAreaNetwork、インターネットなどのネットワーク312に接続され、ネットワーク312を介して他の装置に接続される。そして、I/F308は、ネットワーク312と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F308には、たとえばモデムやLANアダプタなどを採用することができる。キーボード309は、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード309は、タッチパネル式の入力パッドやテンキーなどであってもよい。スレッド処理システム100の機能次に、スレッド処理システム100の機能例について説明する。図4は、スレッド処理システム100の機能例を示すブロック図である。スレッド処理システム100は、検出部401と、割当部402と、実行部403と、取得部404と、登録部405と、算出部406と、設定部407と、通知部408と、制御部409と、管理部410と、を含む。さらに、スレッド処理システム100は、管理部411と、受付部412と、実行部413と、制御部414と、を含む。この制御部となる機能検出部401~制御部414は、記憶装置に記憶されたプログラムをCPU3010、CPU3011が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図3に示したROM302、RAM303、フラッシュROM304、フラッシュROM306などである。また、スレッド処理システム100は、同期待ち開始時刻テーブル421、共有メモリ422にアクセス可能である。さらに、スレッド処理システム100は、アクセス権優先度情報423を生成する。また、CPU3010は、OS4310、スケジューラ432を実行し、CPU3011は、OS4311を実行する。さらに、スレッド処理システム100は、アプリ433を実行しており、アプリ433内のスレッド0がCPU3010に割り当てられており、スレッド1がCPU3011に割り当てられている。また、検出部401~管理部410は、マスタ端末装置となる端末装置1030の機能であり、管理部411~制御部414は、スレーブ端末装置となる端末装置1031の機能である。なお、端末装置1031がマスタ端末装置となる場合、端末装置1031は検出部401~管理部410を含む。また、端末装置1030がスレーブ端末装置となる場合、端末装置1030は管理部411~制御部414を含む。また、検出部401~実行部403は、スケジューラ432の機能に含まれる。なお、取得部404~制御部409がスケジューラ432の機能に含まれてもよい。OS431は、端末装置103を制御するプログラムである。具体的に、OS4310は端末装置1030を制御しており、OS4311は端末装置1031を制御している。OS431は、たとえば、アプリ433が使用するライブラリを提供する。また、OS431は、フラッシュROMコントローラ305、I/F308、キーボード309等を制御するデバイスドライバを有している。スケジューラ432は、スレッド処理システム100で実行されているアプリ内のスレッドをCPU301に割り当てる順番を決定するプログラムである。また、本実施の形態にかかるスケジューラ432は、次に割り当てられることが決定したスレッドをCPU301に割り当てるディスパッチ機能が含まれていることを想定している。たとえば、スケジューラ432は、スレッド0をCPU3010に割り当て、スレッド1をCPU3011に割り当てる。同期待ち開始時刻テーブル421は、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を記憶するテーブルである。同期待ち開始時刻テーブル421の具体的な記憶内容については、図5にて後述する。なお、同期待ち開始時刻テーブル421は、マスタ端末装置である端末装置1030のRAM3030内に記憶される。共有メモリ422は、仮想共有メモリ104に対する実メモリである。共有メモリ4220、共有メモリ4221、また、他の端末装置103内にある共有メモリ422が結合され仮想共有メモリ104を形成する。なお、共有メモリ4220はRAM3030内に存在し、共有メモリ4221はRAM3031内に存在する。アクセス権優先度情報423は、マスタ端末装置となる特定の装置にて、スレーブ端末装置となる複数の装置との仮想共有メモリ104へのアクセス権の優先度を記憶する情報である。アクセス権優先度情報423の生成例については、図6にて後述する。検出部401は、新たなスレッドの割当要求が発生したことを検出する機能を有する。たとえば、検出部401は、実行中のアプリ433にて、新たなスレッドの割当要求が発生したことを検出する。具体的な検出方法として、実行中のアプリ433の実行コードに、新規スレッドを実行するAPIが呼び出された場合、検出部401は、新たなスレッドの割当要求が発生したことを検出する。なお、検出された割当要求は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。割当部402は、マスタ端末装置となる特定の装置にてスレーブ端末装置となる複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当てる機能を有する。また、割当部402は、マスタ端末装置にスレッドを割り当ててもよい。たとえば、割当部402は、スレッド0をCPU3010に割り当て、スレッド1をCPU3011に割り当てる。割当部402は、自装置以外にスレッドを割り当てる場合、割当を行う装置に対して、割当要求を通知する。なお、スレッドを割り当てるという情報は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶されてもよい。実行部403、実行部413は、割り当てられたスレッドを実行する機能を有する。たとえば、実行部403はスレッド0を実行し、実行部413はスレッド1を実行する。なお、スレッドの実行結果は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。取得部404は、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を取得する機能を有する。たとえば、スレッド0が実行開始した時刻を0[ミリ秒]とし、スレッド0が終了した時刻を110[ミリ秒]とする場合を想定する。このとき、取得部404は、スレッド0の実行結果を受け付けるときの第1時刻情報となる同期待ち開始時刻を110[ミリ秒]として取得する。なお、取得された同期待ち開始時刻は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。登録部405は、複数の装置のそれぞれからスレッドの実行結果を受け付けるときの第1時刻情報を登録する機能を有する。たとえば、登録部405は、スレッド0の同期待ち開始時刻となった110[ミリ秒]を同期待ち開始時刻テーブル421に登録する。算出部406は、第1時刻情報と複数の装置から複数のスレッドの実行結果を受け付け終わったときの第2時刻情報とに基づいて複数の装置のそれぞれの所定時間を算出する。ここで、所定時間は、対象の装置からの実行結果を受け付けた時刻から、全てのスレッドからの実行結果を受け付けた時刻までとなる同期待ち時間である。たとえば、スレッド0が同期待ち開始時刻となった時刻が110[ミリ秒]であり、スレッド1が同期待ち開始時刻となった時刻が190[ミリ秒]であると想定する。また、スレッド1の実行結果を受け付けたときが、全てのスレッドの実行結果を受け付け終わったときであることを想定する。このとき、算出部406は、端末装置1030の同期待ち時間を、190-110=80[ミリ秒]として算出し、端末装置1031の同期待ち時間を、190-190=0[ミリ秒]として算出する。なお、算出された同期待ち時間は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。設定部407は、複数の装置の第1時刻情報と第2時刻情報に基づいて、特定の装置および複数の装置で共有される共有メモリ422へのアクセス権の優先度を設定する機能を有する。なお、共有メモリ422へのアクセス権の優先度と、共有メモリ422が結合された仮想共有メモリ104へのアクセス権の優先度は同一であるため、以降、仮想共有メモリ104へのアクセス権の優先度で統一して説明を行う。たとえば、端末装置1030の第1時刻情報が110[ミリ秒]、端末装置1031の第1時刻情報が190[ミリ秒]であり、第2時刻情報が190[ミリ秒]である状態を想定する。たとえば、設定部407は、第1時刻情報が大きい順にアクセス権の優先度を設定する。この例では、設定部407は、端末装置1030の優先度を低く設定し、端末装置1031の優先度を高く設定する。また、設定部407は、算出部406によって算出された所定時間に基づいてアクセス権の優先度を設定してもよい。たとえば、所定時間である同期待ち時間に関して、端末装置1030の同期待ち時間が80[ミリ秒]、端末装置1031の同期待ち時間が0[ミリ秒]であることを想定する。このとき、設定部407は、同期待ち時間が短い順にアクセス権の優先度を設定する。この例でも、設定部407は、端末装置1030の優先度を低く設定し、端末装置1031の優先度を高く設定する。なお、設定された優先度は、アクセス権優先度情報423として生成される。アクセス権優先度情報423は、CPU3010のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。通知部408は、アクセス権の優先度に関する情報を複数の装置に通知する機能を有する。たとえば、通知部408は、設定部407によって生成されたアクセス権優先度情報423を端末装置1031に通知する。制御部409、制御部414は、共有メモリ422へのアクセスを制御するメモリコントローラ311をアクセス権の優先度に応じて制御する機能を有する。たとえば、設定部407が端末装置1030の優先度を低く設定し、端末装置1031の優先度を高く設定した場合を想定する。このとき、制御部409は、CPU3010からの共有メモリ4220へのアクセス中に、I/F3080を経由したアクセス要求があった場合、CPU3010からのアクセスを一旦停止させるようにメモリコントローラ3110を制御する。停止後、制御部409は、I/F3080を経由した共有メモリ4220へのアクセスを行う。具体的に、制御部409は、メモリコントローラ3110の設定レジスタに、各端末装置103の優先度を書き込むことで、メモリコントローラ3110の動作を制御する。同様に、制御部414は、受付部412によって受け付けたアクセス権の優先度に応じてメモリコントローラ3111を制御する。管理部410、管理部411は、仮想共有メモリ104を管理する機能を有する。たとえば、管理部410は、スレッド0からの仮想共有メモリ104へのアクセスを、仮想共有メモリ104に対応する実メモリである共有メモリ4220、共有メモリ4221へのアクセスに変換する。共有メモリ4221へのアクセスに変換された場合、管理部410は、I/F3080を経由して端末装置1031にアクセス要求を通知する。受付部412は、アクセス権の優先度を受け付ける機能を有する。たとえば、受付部412は、端末装置1030からアクセス権優先度情報423を受け付ける。さらに、受付部412は、スレッドの割当要求を受け付ける。なお、受け付けたアクセス権優先度情報423、スレッドの割当要求の情報は、CPU3011のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。図5は、同期待ち開始時刻テーブル421の記憶内容の一例を示す説明図である。同期待ち開始時刻テーブル421は、端末装置IDIDentification、同期待ち開始時刻という2つのフィールドを含む。端末装置IDフィールドには、端末装置1030~端末装置1033の識別情報が格納される。同期待ち開始時刻フィールドには、端末装置1030~端末装置1033が同期待ちを開始した時刻が格納される。たとえば、図5に示す同期待ち開始時刻テーブル421には、レコード421-0~レコード421-3が含まれる。また、図5では、同期処理を伴うスレッドを実行開始した時刻を0[ミリ秒]と想定している。このとき、レコード421-0は、端末装置1030の同期待ち開始時刻が110[ミリ秒]であり、レコード421-1は端末装置1031の同期待ち開始時刻が190[ミリ秒]であることを示している。同様に、レコード421-2は端末装置1032の同期待ち開始時刻が70[ミリ秒]であり、レコード421-3は端末装置1033の同期待ち開始時刻が60[ミリ秒]であることを示している。図6は、アクセス権優先度情報423の生成例を示す説明図である。アクセス権優先度情報423を生成するマスタ端末装置は、同期処理を行うスレッドを実行する端末装置103の全てから実行結果を受け付けた場合、同期待ち時間を算出する。なお、マスタ端末装置も同期処理を行うスレッドを実行してもよい。この場合、同期待ち時間の算出を開始するタイミングは、マスタ端末装置がスレッドを終了しており、さらに、スレーブ端末装置もスレッドを終了している場合である。マスタ端末装置は、同期待ち時間を、下記1式で算出する。同期待ち時間=実行結果を最後に受け付けた端末装置の同期待ち開始時刻-端末装置の同期待ち開始時刻...1たとえば、マスタ端末装置は、レコード421-0~レコード421-3の同期待ち開始時刻フィールドから、端末装置1031を、実行結果を最後に受け付けた端末装置であると特定する。続けて、マスタ端末装置は、端末装置1030の同期待ち時間を1式から以下のように算出する。端末装置1030の同期待ち時間=190-110=80[ミリ秒]マスタ端末装置は、端末装置1031~端末装置1033の同期待ち時間についても、それぞれ、0[ミリ秒]、120[ミリ秒]、130[ミリ秒]と算出する。算出後、マスタ端末装置は、同期待ち時間の短い順に仮想共有メモリ104へのアクセス権の優先度を設定する。設定されたアクセス権の優先度は、アクセス権優先度情報423として生成される。アクセス権優先度情報423は、端末装置ID、優先度という2つのフィールドを含む。端末装置IDフィールドには、端末装置1030~端末装置1033の識別情報が格納される。優先度フィールドには、仮想共有メモリ104へのアクセス権の優先度が格納される。なお、図6で示す優先度は、1が最も優先度が高く、数値が大きくなるほど優先度が低くなる状態であると定義する。マスタ端末装置は、同期待ち時間が最も短かった端末装置1031を優先度1に設定する。続けて、マスタ端末装置は、同期待ち時間の短い順に、端末装置1030を優先度2に設定し、端末装置1032を優先度3に設定し、端末装置1033を優先度4に設定する。図7は、アクセス権優先度情報が設定された場合のスレッド処理システム100の動作例を示す説明図である。図7で示すスレッド処理システム100は、0[ミリ秒]の時点からスレッド0~スレッド3を実行し、200[ミリ秒]にて、スレッド0’~スレッド3’を実行する。ここで、スレッド0~スレッド3とスレッド0’~スレッド3’の処理量は、同一であることを想定している。また、0[ミリ秒]~190[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定されていない状態である。続けて、190[ミリ秒]~200[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度を設定する処理を実行している。さらに、200[ミリ秒]~370[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定された状態となる。また、マスタ端末装置である端末装置1030が、スレーブ端末装置となる端末装置1031~端末装置1033と通信し、端末装置1031~端末装置1033間では通信しないことを想定する。したがって、端末装置1030は、端末装置1032、端末装置1033とは高速通信し、端末装置1031とは低速通信する。なお、スレッド0~スレッド3の実行時間、およびスレッドの実行によって発生する通信時間について、図7では次のように想定する。端末装置1030のスレッド0の処理時間が60[ミリ秒]であり、端末装置1031のスレッド1の処理時間が110[ミリ秒]であり、端末装置1032のスレッド2の処理時間と端末装置1033のスレッド3の処理時間が40[ミリ秒]である。また、低速通信である端末装置1030-端末装置1031間の通信時間は、30[ミリ秒]となることを想定する。高速通信である端末装置1030-端末装置1032、端末装置1030-端末装置1033間の通信時間は10[ミリ]秒であることを想定する。このような状態で、端末装置1030は、0[ミリ秒]の時点にて、スレッド0~スレッド3を端末装置1030~端末装置1033に割り当てる。スレッドを割り当てられた端末装置1030~端末装置1033は、スレッドを実行するために仮想共有メモリ104にアクセスする。なお、このときアクセスする仮想共有メモリ104に対応する共有メモリ422が、共有メモリ4220である場合を想定する。したがって、端末装置1031~端末装置1033は、端末装置1030と通信を行う。このとき、高速通信であり最も早く通信を開始できた端末装置1033が端末装置1030と通信を行う。時刻10[ミリ秒]にて、端末装置1030と端末装置1033の通信が終了すると、次に端末装置1030と端末装置1032が通信を開始する。また、通信を終了した端末装置1033は、スレッド3を実行する。また、時刻20[ミリ秒]にて、端末装置1030と端末装置1032の通信が終了すると、続けて端末装置1030と端末装置1031が通信を開始する。また、通信を終了した端末装置1033は、スレッド2を実行する。続けて、時刻50[ミリ秒]にて、端末装置1030と端末装置1031の通信が終了すると、端末装置1030がスレッド0を実行し、端末装置1031がスレッド1を実行する。また、端末装置1033は、10[ミリ秒]の時点から40[ミリ秒]経過した50[ミリ秒]の時点でスレッド3を終了し、時刻60[ミリ秒]にて実行結果を端末装置1030に通知する。端末装置1030は、実行結果を受け付け、端末装置1033の同期待ち開始時刻を60[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。時刻70[ミリ秒]でも同様に、端末装置1032がスレッド2を終了し、実行結果を端末装置1030に通知する。通知を受けた端末装置1030は、実行結果を受け付け、端末装置1032の同期待ち開始時刻を70[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。また、時刻110[ミリ秒]にて、端末装置1030がスレッド0を終了すると、端末装置1030は、端末装置1030の同期待ち開始時刻を110[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。さらに、時刻160[ミリ秒]にて、端末装置1031がスレッド1を終了し、時刻190[ミリ秒]にて実行結果を端末装置1030に通知する。端末装置1030は、端末装置1031の同期待ち開始時刻を190[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。マスタ端末装置は、全ての端末装置103がスレッドを終了したため、次の処理を実行開始する。また、時刻190[ミリ秒]にて、端末装置1030は、各端末装置103の同期待ち時間を算出する。端末装置1030~端末装置1033の同期待ち時間は、それぞれ、80[ミリ秒]、0[ミリ秒]、120[ミリ秒]、130[ミリ秒]、と算出される。算出結果から、端末装置1030は、端末装置1030~端末装置1033の仮想共有メモリ104へのアクセス権を、それぞれ、優先度:2、優先度:1、優先度:3、優先度:4に設定する。優先度が設定された状態で、端末装置1030は、200[ミリ秒]の時点にて、スレッド0’~スレッド3’を端末装置1031~端末装置1033に割り当てる。スレッドを割り当てられた端末装置1031~端末装置1033は、スレッドを実行するために仮想共有メモリ104にアクセスする。端末装置1031~端末装置1033は、端末装置1030と通信を行う。このとき、初めに、高速通信であり最も早く通信を開始できた端末装置1033が端末装置1030と通信を行う。しかし、その後、優先度が高い端末装置1031からのアクセス要求を受け付けると、端末装置1030は、端末装置1033による共有メモリ4220へのアクセスを一旦中断し、端末装置1031からの共有メモリ4220へのアクセスを行う。時刻230[ミリ秒]にて、端末装置1030と端末装置1031の通信が終了すると、次に優先度が高い端末装置1032が端末装置1030と通信を開始する。また、時刻240[ミリ秒]にて、端末装置1030と端末装置1032の通信が終了すると、次に優先度が高い端末装置1033が端末装置1030と通信を開始する。通信が終了した端末装置103から順に、割り当てられたスレッド0’~スレッド3’を実行する。端末装置1032は、時刻290[ミリ秒]にて、スレッド2’の実行結果を通知し、端末装置1030は、スレッド2’の実行結果を受け付ける。同様に、端末装置1033は、時刻300[ミリ秒]にて、スレッド3’の実行結果を通知し、端末装置1030は、スレッド3’の実行結果を受信する。端末装置1031は、時刻370[ミリ秒]にて、スレッド1’の実行結果を通知し、端末装置1030は、スレッド1’の実行結果を受け付ける。このように、スレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定されることで、ボトルネックとなっていた端末装置1031の処理を早く終了でき、スレッド処理システム100の処理性能を向上できる。具体的に、図7では、仮想共有メモリ104へのアクセス権の優先度が設定されていないスレッド処理システム100は、全てのスレッドが終了するまで190[ミリ秒]経過していた。仮想共有メモリ104へのアクセス権の優先度が設定されたスレッド処理システム100では、全てのスレッドが終了するまで170[ミリ秒]となり、処理性能を向上させることができる。次に、図7で示した動作を行うスレッド実行時の処理手順の一例を示すフローチャートを図8~図10で示す。図8、図9では、マスタ端末装置によるスレッド実行時の処理手順を示しており、図10では、マスタ端末装置からの通知によって動作するスレーブ端末装置によるスレッド実行時の処理手順を示している。図8は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャートその1である。マスタ端末装置は、新たなスレッドの割当要求が発生したか否かを判断するステップS801。新たなスレッドの割当要求が発生していない場合ステップS801:No、マスタ端末装置は、一定時間経過後、ステップS801の処理を再び実行する。新たなスレッドの割当要求が発生した場合ステップS801:Yes、マスタ端末装置は、新たなスレッドの割当要求をマスタ端末装置、またはスレーブ端末装置に通知するステップS802。なお、新たなスレッドが複数発生した場合、マスタ端末装置は、ステップS802の処理を複数実行する。また、新たなスレッドをマスタ端末装置とスレーブ端末装置のうち、どの端末装置に割り当てるかを決定する処理は、スケジューラの機能に含まれる。スケジューラは、たとえば、マスタ端末装置とスレーブ端末装置のうち、最も負荷が最小となる端末装置に新たなスレッドを割り当ててもよい。スレッド割り当て後、マスタ端末装置は、マスタ端末装置に割り当てられたスレッドを実行するステップS803。続けて、マスタ端末装置は、割り当てられたスレッドの処理が終了したか否かを判断するステップS804。スレッドの処理が終了した場合ステップS804:Yes、マスタ端末装置は、マスタ端末装置の実行結果を受け付けた時刻を同期待ち開始時刻として取得するステップS805。取得後、マスタ端末装置は、取得された同期待ち開始時刻を同期待ち開始時刻テーブル421に登録するステップS806。格納後、または、スレッドの処理が終了していない場合ステップS804:No、マスタ端末装置は、スレーブ端末装置から実行結果を受け付けたか否かを判断するステップS807。なお、スレーブ端末装置の実行結果は、後述するステップS1004の処理によって通知されてくる。実行結果を受け付けた場合ステップS807:Yes、マスタ端末装置は、スレーブ端末装置から実行結果を受け付けた時刻を同期待ち開始時刻として取得するステップS808。取得後、マスタ端末装置は、取得された同期待ち開始時刻を同期待ち開始時刻テーブル421に登録するステップS809。格納後、または実行結果を受け付けていない場合ステップS807:No、マスタ端末装置は、割り当てを行ったスレッドの実行結果を全て受け付けたか否かを判断するステップS810。実行結果を全て受け付けていない場合ステップS810:No、マスタ端末装置は、ステップS804の処理に移行する。実行結果を全て受け付けた場合ステップS810:Yes、マスタ端末装置は、ステップS901の処理に移行する。図9は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャートその2である。ステップS810の処理実行後、マスタ端末装置は、実行結果を最後に受け付けた端末装置103の同期待ち開始時刻から、各端末装置103の同期待ち時間を算出するステップS901。算出後、マスタ端末装置は、各端末装置103の同期待ち時間に応じて、仮想共有メモリ104へのアクセス権の優先度を設定するステップS902。続けて、マスタ端末装置は、設定された優先度から、アクセス権優先度情報423を生成しステップS903、アクセス権優先度情報423をスレーブ端末装置に通知するステップS904。通知後、マスタ端末装置は、マスタ端末装置の共有メモリ422へのアクセス権の優先度をマスタ端末装置のメモリコントローラ311に設定しステップS905、ステップS801の処理に移行する。図10は、スレーブ端末装置によるスレッド実行時の処理手順の一例を示すフローチャートである。スレーブ端末装置は、マスタ端末からの通知を受け付けたか否かを確認するステップS1001。なお、マスタ端末装置からの通知は、ステップS802、ステップS905の処理によって通知されてくる。マスタ端末装置から通知を受け付けていない場合ステップS1001:通知なし、スレーブ端末装置は、一定時間経過後、ステップS1001の処理に移行する。仮想共有メモリ104へのアクセス権優先度情報423の通知を受け付けた場合ステップS1001:アクセス権優先度情報423、スレーブ端末装置は、スレーブ端末装置の共有メモリ422へのアクセス権の優先度をスレーブ端末装置のメモリコントローラ311に設定するステップS1002。設定後、スレーブ端末装置は、ステップS1001の処理に移行する。スレッド割当要求の通知を受け付けた場合ステップS1002:スレッド割当要求、スレーブ端末装置は、割当要求のあったスレッドを実行するステップS1003。実行終了後、スレーブ端末装置は、スレッドの実行結果をマスタ端末装置に通知し、ステップS1001の処理に移行する。以上説明したように、スレッド処理方法、およびスレッド処理システムによれば、複数の端末装置で同期処理を行う場合、他端末装置を長時間待たせる低性能端末装置の共有メモリへのアクセス権の優先度を高く設定する。これにより、低性能端末装置の実行時間が短縮され他端末装置の同期待ち時間が削減されるため、スレッド処理システムは、全体の処理性能を向上できる。また、全体の処理性能を向上させる他の技術として、データを冗長配置する方法が存在する。これにより、他の端末装置にアクセスする頻度が低下するため、処理性能を向上することができる。しかしながら、データを冗長配置しても、同期処理が頻繁に発生する場合、全体の処理性能が低下してしまっていた。本実施の形態におけるスレッド処理システムは、同期待ち時間を可能な限り削減するため、全体の処理性能を向上することができる。また、データを冗長配置する方法は、メモリの使用容量が大きくなってしまう問題があった。本実施の形態の適用の対象となる携帯電話などの端末装置は、メモリ容量に限界があるため、メモリの使用容量が大きいデータの冗長配置を適用するのが困難である。本実施の形態のスレッド処理システムは、データを冗長配置しなくてよいため、メモリ容量の削減が可能であり、端末装置にも適用することができる。また、スレッド処理システムは、共有メモリへのアクセス権の優先度をマスタ端末装置からスレーブ端末装置に通知してもよい。これにより、全端末装置で優先度制御を行った仮想分散共有メモリを運用することができる。また、スレッド処理システムは、複数のスレッドの実行結果を受け付けるときの第1時刻情報と、複数のスレッドの実行結果を受け付け終わったときの第2時刻情報から、各端末装置の同期待ち時間を算出し、同期待ち時間に基づいて、優先度を設定してもよい。同期待ち時間を算出することで、スレッド処理システムは、ボトルネックとなっている端末装置を検出することができる。なお、ボトルネックとなる端末装置は、低処理性能であったり、低速通信であったりする。しかし、本実施の形態にかかるスレッド処理システムは、端末の処理性能の取得、通信速度の取得を行わずに、実行結果を受け付けた時刻によってボトルネックとなる端末装置を検出することができる。したがって、本実施の形態におけるスレッド処理システムは、共有メモリの優先度情報以外の新たな情報を端末間で通信しなくてよい。また、スレッド処理システムは、同期待ち時間が小さいとき共有メモリへのアクセス権の優先度を高く設定してもよい。これにより、スレッド処理システムは、ボトルネックとなり、同期待ち時間が小さくなった端末装置の優先度を高く設定することができ、全体の処理性能を向上させることができる。なお、本実施の形態で説明したスレッド処理方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本スレッド処理方法を実行するスレッド処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本スレッド処理プログラムは、インターネット等のネットワークを介して配布してもよい。