Linux下一个简单的线程示例程序
#include <stdio.h>#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
void *thread_function( void *arg );
char message[] = "Hello World!\n";
int main()
{
int res;
pthread_t a_thread;
void *thread_result;
/* 创建线程 */
res = pthread_create( &a_thread, NULL, thread_function, ( void* )message );
if ( res != 0 )
{
perror( "Thread creation failed" );
exit( EXIT_FAILURE );
}
printf( "Waiting for thread to finish...\n" );
/* 等待线程结束 */
res = pthread_join( a_thread, &thread_result );
if ( res != 0 )
{
perror( "Thread join failed" );
exit( EXIT_FAILURE );
}
printf( "Thread joined, it returned %s\n", ( char* )thread_result );
printf( "Message is now %s\n", message );
exit( EXIT_SUCCESS );
}
void *thread_function( void *arg )
{
printf( "thread_function is running. Argument was %s\n", ( char* )arg );
sleep( 3 );
strcpy( message, "Bye!" );
/* 线程返回值 */
pthread_exit( (void*)"Thank you for the CPU time" );
}主要涉及到3个函数:pthread_create, pthread_join, pthread_exit。
int
pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
int
pthread_join(pthread_t thread, void **value_ptr);
void
pthread_exit(void *value_ptr); 支持下。
线程参数用全局变量啊,,
楼主普及下线程传递参数的方式呗,整型、字符串、结构体等:mrgreen: 线程传递的参数是 void型的换种意义说就是你想让它是什么型就是什么型
页:
[1]