作者:龙飞
2.1:竞争条件(Race Conditions)
我们在前面将一个普通函数调用转换成了用线程调用,这意味着我们可以“同时”调用两个以上的线程。例如,我们希望在屏幕的另外一个位置也播放这段简单的动画,我们只需要添加一个线程的调用就可以了。
int
main(
int
argc ,
char
*
argv[])
{
// Create a SDL screen.
const int SCREEN_WIDTH = 640 ;
const int SCREEN_HEIGHT = 480 ;
const Uint32 SCREEN_FLAGS = 0 ; // SDL_FULLSCREEN | SDL_DOUBLEBUF | SDL_HWSURFACE
const std:: string WINDOW_NAME = " Amn Test " ;
ScreenSurface screen(SCREEN_WIDTH, SCREEN_HEIGHT, WINDOW_NAME, 0 , SCREEN_FLAGS);
PictureSurface bg( " ./images/background.png " , screen);
bg.blit( 0 );
screen.flip();
AmnArg test1( 0 , 250
{
// Create a SDL screen.
const int SCREEN_WIDTH = 640 ;
const int SCREEN_HEIGHT = 480 ;
const Uint32 SCREEN_FLAGS = 0 ; // SDL_FULLSCREEN | SDL_DOUBLEBUF | SDL_HWSURFACE
const std:: string WINDOW_NAME = " Amn Test " ;
ScreenSurface screen(SCREEN_WIDTH, SCREEN_HEIGHT, WINDOW_NAME, 0 , SCREEN_FLAGS);
PictureSurface bg( " ./images/background.png " , screen);
bg.blit( 0 );
screen.flip();
AmnArg test1( 0 , 250