#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
#define THREAD_COUNT 12 void show_thread_policy(int threadno){
int policy;
struct sched_param param;
pthread_getschedparam(pthread_self(), &policy, &param);
switch(policy){
case SCHED_OTHER:
printf("SCHED_OTHER %d\n", threadno);
break;
case SCHED_RR:
printf("SCHED_RR %d\n", threadno);
break;
case SCHED_FIFO:
printf("SCHED_FIFO %d\n", threadno);
break;
default:
printf("UNKNOWN\n");
}
} void *thread(void *arg){
int i,j;
long threadno = (long)arg;
printf("thread %d start \n", threadno);
printf("thread ------------------------------0\n");
sleep();
printf("---------1---------------\n");
show_thread_policy(threadno);
printf("---------2---------------\n");
for(int i=;i<;i++){
printf("---------3---------------\n");
for(j=;j<;j++){ } printf("thread %d\n", threadno);
} printf("thread %d exit\n", threadno);
return NULL;
} int main(int argc, char *argv[]){
long i;
pthread_attr_t attr[THREAD_COUNT];
pthread_t pth[THREAD_COUNT];
struct sched_param param;
for(i=;i<THREAD_COUNT;++i){
pthread_attr_init(&attr[i]);
for(i=;i<THREAD_COUNT/;++i){
param.sched_priority = ;
pthread_attr_setschedpolicy(&attr[i], SCHED_FIFO);
pthread_attr_setschedparam(&attr[i], &param);
pthread_attr_setinheritsched(&attr[i], PTHREAD_EXPLICIT_SCHED);
} for(i=THREAD_COUNT/;i<THREAD_COUNT;++i){
param.sched_priority = ;
pthread_attr_setschedpolicy(&attr[i], SCHED_FIFO);
pthread_attr_setschedparam(&attr[i], &param);
pthread_attr_setinheritsched(&attr[i], PTHREAD_EXPLICIT_SCHED);
} for(i=;i<THREAD_COUNT;++i){
pthread_create(&pth[i], &attr[i], thread, (void *)i);
printf("--------------------create thread %d------------\n", i);
} for(i=;i<THREAD_COUNT;++i){
pthread_join(pth[i], NULL);
} for(i=;i<THREAD_COUNT;++i){
pthread_attr_destroy(&attr[i]);
} return ;
}
}

编译之后执行的结果如下:

[root@Alston C++]# ./thread_2.exe
thread 0 start
thread ------------------------------0
--------------------create thread 0------------
--------------------create thread 1------------
--------------------create thread 2------------
--------------------create thread 3------------
Segmentation fault (core dumped)

目前还没调查出来原因。

最新文章

  1. ASM FailGroup验证
  2. zoj 3882 博弈 *
  3. Ubuntu 修改源
  4. move 和 CopyMemory的区别
  5. .NET: WPF DependencyProperty
  6. DWZ使用笔记
  7. Android通过tcpdump抓包(wifi, 2g, 3g都可以)
  8. centos 添加用户
  9. Spring、Struts2+Spring+Hibernate整合步骤
  10. 丑数&lt;数学技巧&gt;
  11. JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法
  12. Elasticsearch 全量遍历数据
  13. vue+vux+axios+vuex+vue-router的项目的理解
  14. python 面向对象的程序设计
  15. vuex脑图
  16. Run Configurations(Debug Configurations)-&gt;Arguments里填写program arguments和VM arguments
  17. 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?
  18. 浅谈如何正确给table加边框
  19. delphi新手到高手的工具--castalia
  20. STM32 输入捕获配置

热门文章

  1. hdu 2102 BFS
  2. TLV简介
  3. tab左右箭头切换
  4. zk 获取session,request,servletContext,response
  5. 服务器租用中网络ping值过高的原因
  6. AppStore审核
  7. html本地服务器
  8. Android课程---Android Studio简单设置
  9. IOS网络第二天 - 02-异步HTTP请求block回调 解析
  10. 【7集iCore3基础视频】7-5 iTool2驱动安装