Chinaunix首页 | 论坛 | 博客
  • 博客访问: 688476
  • 博文数量: 214
  • 博客积分: 5015
  • 博客等级: 大校
  • 技术积分: 2285
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-18 17:02
文章分类

全部博文(214)

文章存档

2008年(43)

2007年(171)

我的朋友

分类:

2007-11-27 16:46:15

#include <pthread.h>
#include <stdio.h>

void *subCall(void *param)
{
  int *p = param;
  (*p) ++;
  return NULL;
}

int main()
{
   int i, *p=NULL;
   int err;
   pthread_t pid;
   p = (int *) malloc(sizeof(int));
   *p = 10;
   for(i=0;i<3;i++)
   {
       err=pthread_create(&pid, NULL , subCall, p);
       sleep(1);
       printf("wait 1 second! -- err=%d, tid=%d, val=%d\n\n", err,pid, (*p));
   }
   free(p);
   return 0;
}

在编译时要加上"-lpthread", 否则的话程序不能工作在多线程模式下.

gcc -o test -l pthread test.c

目标是由线程来将主程序中的数据加一, 结果完成我的要求.

wait 1 second! -- err=0, tid=4, val=11

wait 1 second! -- err=0, tid=6, val=12

wait 1 second! -- err=0, tid=7, val=13

阅读(632) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-01-21 19:56:39

#include"mihu.h" void *recv(void *arg) { int i = 0; int client_sock_fd = -1; char message[20] = ""; LJC *p1; LJC *p2; LJC *p; RECV_MSG recv_msg; client_sock_fd = *(int*)arg; p1 = (LJC *)malloc(sizeof(LJC)); p1->next = NULL; while(1) { memset(&recv_msg,0,sizeof(recv_msg)); if(recv(client_sock_fd,(char *)&recv_msg,sizeof(recv_msg),0) == -1) { printf("recv error~~~~~~~~~! \n"); break; } p2 = (LJC *

chinaunix网友2008-01-21 19:50:40

这什么呀 丢不丢人呀