linux线程使用简单实例
2010-08-08 20:40
344 查看
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
void * fun(void *p)//接收的只是数据的地址
{
int (*b)[3] = (int (*)[3])p;
int i,j;
for(i=0;i<3;++i)
for(j=0;j<3;++j)
b[i][j] = i*2+j;
pthread_exit((void *)b);//返回操作后的数据的地址
}
int main(void)
{
pthread_t athread;
int ret;
int array[3][3];
int (*p)[3];
int i,j;
ret = pthread_create(&athread,NULL,(void *(*)(void *))fun,(void *)array); //把要操作的数据的地址传入
if(ret != 0)
{
printf("new thread error/n");
exit(-1);
}
ret = pthread_join(athread,(void **)&p);//接收的是数据的地址,所有要传入二级指针
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
printf("%d ",p[i][j]);
}
printf("/n");
}
exit(0);
}
#include <stdio.h>
#include <stdlib.h>
void * fun(void *p)//接收的只是数据的地址
{
int (*b)[3] = (int (*)[3])p;
int i,j;
for(i=0;i<3;++i)
for(j=0;j<3;++j)
b[i][j] = i*2+j;
pthread_exit((void *)b);//返回操作后的数据的地址
}
int main(void)
{
pthread_t athread;
int ret;
int array[3][3];
int (*p)[3];
int i,j;
ret = pthread_create(&athread,NULL,(void *(*)(void *))fun,(void *)array); //把要操作的数据的地址传入
if(ret != 0)
{
printf("new thread error/n");
exit(-1);
}
ret = pthread_join(athread,(void **)&p);//接收的是数据的地址,所有要传入二级指针
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
printf("%d ",p[i][j]);
}
printf("/n");
}
exit(0);
}
相关文章推荐
- LinuxC/C++编程基础(21) 使用boost::asio搭建服务器简单实例(续)
- linux下c++使用ncurses库的一个简单实例
- Qt线程的简单使用——通过一个实例理解QMutex的使用
- linux线程锁使用实例
- python使用线程封装的一个简单定时器类实例
- java 使用线程做的一个简单的ATM存取款实例代码
- LinuxC/C++编程基础(31) 使用thrift/rpc开发简单实例(续3)
- LinuxC/C++编程基础(22) 使用thrift/rpc开发简单实例
- Linux下C语言实现的简单使用线程向FIFO里写入与读取数据的例子
- LinuxC/C++编程基础(23) 使用thrift/rpc开发简单实例(续1)
- Linux 动态库的创建和使用简单实例
- linux 下epoll与线程池结合使用的简单实例
- 委托机制在线程中的使用的简单实例
- linux编程笔记_1 简单的线程使用
- LinuxC/C++编程基础(32) 使用thrift/rpc开发简单实例(续4)
- Linux中rz命令使用实例分享(批量上传文件、简单易用)
- python使用线程封装的一个简单定时器类实例
- 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
- LinuxC/C++编程基础(24) 使用thrift/rpc开发简单实例(续2)
- java 使用线程做一个简单的ATM存取款实例.(转)