会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
在路上...
The development of life
我们一直都在努力,有您的支持,将走得更远...
站内搜索:
输入您的搜索字词
提交搜索表单
::
首页
::
博问
::
闪存
::
新随笔
::
联系
::
订阅
::
管理
::
公告
线程实例 传值与传址
传值:
#include <stdio.h>
#include <pthread.h>
void thread(int i)
{
int k;
for (k=0;k<10;k++) {
printf("this is %d pthread.\n",i);
}
}
int main(){
pthread_t pthread_id;
int i,ret;
int m=2;
ret=pthread_create(&pthread_id,NULL,(void *)thread,(void *)m);
if (ret!=0) {
printf("create pthread error!\n");
exit(0);
}
for (i=0;i<10;i++) {
printf("this is 1 pthread.\n");
}
pthread_join(pthread_id,NULL);
return 0;
}
编译的时候需要加上-lpthread开关:
gcc -o thread_1 thread_1.c
-lpthread
传址
#include <stdio.h>
#include <pthread.h>
void thread(int *i)
{
int k;
int sum=0;
for (k=1;k<101;k++) {
sum=sum+k;
}
*i=sum;
}
int main(){
pthread_t pthread_id;
int i,ret;
int *m;
int sum=0;
m=(int *)malloc(sizeof(int));
ret=pthread_create(&pthread_id,NULL,(void *)thread,(void *)&m);
if (ret!=0) {
printf("create pthread error!\n");
exit(0);
}
for (i=0;i<1000000;i++) {
sum=sum+1;
}
printf("main sum =%d\n",sum);
printf("pthread sum =%d\n",m);
//free((void *)m);
return 0;
}
posted on
2009-08-24 15:10
palam
阅读(
447
) 评论(
1
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部