六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 135|回复: 0

linux-多线程竞争域

[复制链接]

升级  94.2%

305

主题

305

主题

305

主题

进士

Rank: 4

积分
971
 楼主| 发表于 2013-1-28 23:49:04 | 显示全部楼层 |阅读模式
#include <pthread.h>#include <stdio.h>#include <errno.h>void *mycompadd(void *xx){//参数必须为void *,然后进行强制类型转换  int sum=0;   int *x=(int *)(xx);  int contscope;  pthread_attr_t attr;      pthread_getattr_np(pthread_self(),&attr);//获取线程属性。   pthread_attr_getscope(&attr,&contscope); //获取线程属性对象竞争域  if (contscope==PTHREAD_SCOPE_SYSTEM){//系统调度竞争域     printf("mycompadd系统竞争\n");  }  if(contscope==PTHREAD_SCOPE_PROCESS){//进程调度竞争域     printf("mycompadd进程竞争\n");         }    for (int i=0;i<*x;i++){    sum+=i;   }  printf("add%d\n",sum);    }void  *mycompchen(void *xx){//参数必须为void *,然后进行强制类型转换  int sum=1;   int *x=(int *)(xx);  int contscope;  pthread_attr_t attr;      pthread_getattr_np(pthread_self(),&attr);//获取线程属性。   pthread_attr_getscope(&attr,&contscope); //获取线程属性对象竞争域  if (contscope==PTHREAD_SCOPE_SYSTEM){//系统调度竞争域     printf("mycompchen系统竞争\n");  }  if(contscope==PTHREAD_SCOPE_PROCESS){//进程调度竞争域//深未来技术原创,http://deepfuture.iteye.com     printf("mycompchen进程竞争\n");         }  for (int i=1;i<=*x;i++){    sum*=i;    }  printf("chen%d\n",sum);   }  int main(){  //main为boss线程  int n=5;  pthread_t threada,threadb;   pthread_attr_t attr;  pthread_attr_init(&attr);  //创建worker线程,并执行线程  pthread_attr_setscope(&attr,PTHREAD_SCOPE_SYSTEM); //设置线程属性对象竞争域为 系统调度竞争,在整个系统内进行竞争。  PTHREAD_SCOPE_PROCESS在LINUX系统下不支持,因此设置为PTHREAD_SCOPE_PROCESS会出错,不成功  //通常pthread的这些函数返回0值,表示成功  //返回EINVAL,表示不正确的可选项  //ENOTSUP,系统不支持或权限不够   if (pthread_attr_setscope(&attr,PTHREAD_SCOPE_PROCESS)==ENOTSUP){//如果在LINUX下运行这段程序,肯定不支持,SOLARIS支持      printf("LINUX系统不支持\n");   }     pthread_create(&threada,NULL,mycompadd,&n);//线程,线程属性,函数,参数。如果有多个参数,必须传结构指针  pthread_create(&threadb,&attr,mycompchen,&n);//线程,线程属性,函数,参数 //深未来技术原创,http://deepfuture.iteye.com   sleep(1);  return(0);} root@deepfuture-laptop:/home/deepfuture/private/mytest# ./test1LINUX系统不支持
mycompadd系统竞争
add10
mycompchen系统竞争
chen120
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表