- #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);
阅读(1601) | 评论(0) | 转发(0) |