Nanashi-soft○プログラマ専用○PS3 Linux SDL○
前にスレッド処理の方法を説明しましたが、あの方法はLinuxでしか使えません
SDL関数郡の中に、同様の事を行うものがある事に気が付きました
こちらを用いる事で移植性の高いソースを書くことができます
スレッド処理の方法で書いたプログラムを SDL関数を用いて書き直してみます
#include "SDL.h" int j2; //スレッド処理結果を格納する変数 //スレッド実行する関数 int thread1(void* args){ int i2; j2=0; for (i2=51; i2 <= 100; i2++){ j2 = j2 + i2; } } int main(int args,char *argp[]){ SDL_Thread *pt1; pt1 = SDL_CreateThread(thread1, NULL); //スレッドを実行 //メイン処理はそのまま平行動作している int i1; int j1=0; for (i1=1; i1 <= 50; i1++){ j1 = j1 + i1; } SDL_WaitThread(pt1, NULL); //スレッド処理終了を待つ //両方のスレッドで処理した結果をまとめる int j; j = j1 + j2; }
このプログラムを Windows XPと PS3 Linux上でビルドして実行したところ、きちんと動作しました