Nanashi-softプログラマ専用PS3 Linux SDL


◇PS3 Linux SDLでプログラミング -SDL関数を使ってスレッド処理-

前にスレッド処理の方法を説明しましたが、あの方法はLinuxでしか使えません
SDL関数郡の中に、同様の事を行うものがある事に気が付きました
こちらを用いる事で移植性の高いソースを書くことができます

○スレッドプログラム例 を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上でビルドして実行したところ、きちんと動作しました


TOPプログラマ専用PS3 Linux SDL