用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

c语言实现多线程编程 pthread_create

2013-03-07 作者: 海大软件1102班举报

[c]代码库

/**
  *thread_example.c :  c multiple thread programming in linux
  *author : falcon
  *E-mail : tunzhj03@st.lzu.edu.cn
  */
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10

pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;

void *thread1()
{
	printf ( "thread1 : I'm thread 1\n" );

	for ( i = 0; i < MAX; i++ )
	{
		printf ( "thread1 : number = %d\n",number );
		pthread_mutex_lock ( &mut );
		number++;
		pthread_mutex_unlock ( &mut );
		sleep ( 2 );
	}


	printf ( "thread1 :主函数在等我完成任务吗?\n" );
	pthread_exit ( NULL );
}

void *thread2()
{
	printf ( "thread2 : I'm thread 2\n" );

	for ( i = 0; i < MAX; i++ )
	{
		printf ( "thread2 : number = %d\n",number );
		pthread_mutex_lock ( &mut );
		number++;
		pthread_mutex_unlock ( &mut );
		sleep ( 3 );
	}


	printf ( "thread2 :主函数在等我完成任务吗?\n" );
	pthread_exit ( NULL );
}

void thread_create ( void )
{
	int temp;
	memset ( &thread, 0, sizeof ( thread ) );    //comment1
	//创建线程
	if ( ( temp = pthread_create ( &thread[0], NULL, thread1, NULL ) ) != 0 )       //comment2
		printf ( "线程1创建失败!\n" );
	else
		printf ( "线程1被创建\n" );

	if ( ( temp = pthread_create ( &thread[1], NULL, thread2, NULL ) ) != 0 )  //comment3
		printf ( "线程2创建失败" );
	else
		printf ( "线程2被创建\n" );
}

void thread_wait ( void )
{
	//等待线程结束
	if ( thread[0] !=0 )                  //comment4
	{
		pthread_join ( thread[0],NULL );
		printf ( "线程1已经结束\n" );
	}
	if ( thread[1] !=0 )               //comment5
	{
		pthread_join ( thread[1],NULL );
		printf ( "线程2已经结束\n" );
	}
}

int main()
{
	//用默认属性初始化互斥锁
	pthread_mutex_init ( &mut,NULL );

	printf ( "我是主函数哦,我正在创建线程,呵呵\n" );
	thread_create();
	printf ( "我是主函数哦,我正在等待线程完成任务阿,呵呵\n" );
	thread_wait();

	return 0;
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...