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上でビルドして実行したところ、きちんと動作しました