50 lines
1.0 KiB
C
50 lines
1.0 KiB
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <time.h>
|
||
|
#include <pthread.h>
|
||
|
#include <unistd.h>
|
||
|
#include <sys/types.h>
|
||
|
|
||
|
//~ CRITICAL_SECTION cs;
|
||
|
pthread_mutex_t mutex; // Mutex
|
||
|
|
||
|
int a[ 5 ];
|
||
|
|
||
|
void *Thread( void* pParams )
|
||
|
{
|
||
|
int i, num = 0;
|
||
|
|
||
|
while ( 1==1 )
|
||
|
{
|
||
|
//~ EnterCriticalSection( &cs );
|
||
|
pthread_mutex_lock(&mutex);
|
||
|
for ( i = 0; i < 5; i++ ) a[ i ] = num;
|
||
|
//~ LeaveCriticalSection( &cs );
|
||
|
pthread_mutex_unlock(&mutex);
|
||
|
num++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int main( void )
|
||
|
|
||
|
{
|
||
|
//~ InitializeCriticalSection( &cs );
|
||
|
pthread_mutex_init(&mutex,NULL);
|
||
|
//~ _beginthread( Thread, 0, NULL );
|
||
|
pthread_t tr;
|
||
|
if(pthread_create(&tr,NULL,Thread,NULL) != 0)
|
||
|
return EXIT_FAILURE;
|
||
|
|
||
|
while( 1==1 )
|
||
|
{
|
||
|
//~ EnterCriticalSection( &cs );
|
||
|
pthread_mutex_lock(&mutex);
|
||
|
printf( "%d %d %d %d %d\n",
|
||
|
a[ 0 ], a[ 1 ], a[ 2 ],
|
||
|
a[ 3 ], a[ 4 ] );
|
||
|
//~ LeaveCriticalSection( &cs );
|
||
|
pthread_mutex_unlock(&mutex);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|