线程绑定cpu
#include <stdio.h>
#include <pthread.h>
#include <sys/sysinfo.h>
#include <unistd.h>
#include <sched.h>
void SetCpuWhich() {
int cpu_num=sysconf(_SC_NPROCESSORS_CONF);
printf("[%s]cpu_num:%d\n",__FUNCTION__,cpu_num);
int cpu_which=1;
cpu_set_t mask;
CPU_ZERO(&mask);
CPU_SET(cpu_which,&mask);
if(sched_setaffinity(0,sizeof(mask),&mask)==-1) {
printf("[%s]sched_setaffinity false:cpu_which%d\n",__FUNCTION__,cpu_which);
return;
}
else {
printf("[%s]sched_setaffinity true:cpu_which%d\n",__FUNCTION__,cpu_which);
}
}
void GetCpuWhich() {
int cpu_num=sysconf(_SC_NPROCESSORS_CONF);
printf("[%s]cpu_num:%d\n",__FUNCTION__,cpu_num);
cpu_set_t get;
CPU_ZERO(&get);
if(sched_getaffinity(0,sizeof(get),&get)==-1) {
printf("[%s]sched_getaffinity false\n",__FUNCTION__);
return;
}
for(int i=0;i<cpu_num;i++) {
if(CPU_ISSET(i,&get)) {
printf("[%s]sched_getaffinity true:cpu_which:%d\n",__FUNCTION__,i);
}
}
}
线程绑定cpu的更多相关文章
- Linux编程之《进程/线程绑定CPU》
Intro----- 通常我们在编写服务器代码时,可以通过将当前进程绑定到固定的CPU核心或者线程绑定到固定的CPU核心来提高系统调度程序的效率来提高程序执行的效率,下面将完整代码贴上. /***** ...
- 线程绑定CPU核-sched_setaffinity
CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行. 一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩码 ...
- linux线程绑定cpu
函数介绍 #define __USE_GNU #include <sched.h> void CPU_ZERO(cpu_set_t *set); void CPU_SET(int cpu, ...
- 为线程绑定CPU
// learn gcc atomic variable #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> ...
- Windows10 临时将线程绑定至指定CPU的方法
本文首发:https://www.somata.work/2019/WindowsThreadBind.html 将线程绑定至指定CPU,这个应该时很多管理员需要了解认知的操作了吧,这样可以在一定程度 ...
- NGINX源代码剖析 之 CPU绑定(CPU亲和性)
作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...
- linux下将不同线程绑定到不同core和cpu上——pthread_setaffinity_np
=============================================================== linux下的单进程多线程的程序,要实现每个线程平均分配到多核cpu,主 ...
- Linux进程或线程绑定到CPU
Linux进程或线程绑定到CPU 为了让程序拥有更好的性能,有时候需要将进程或线程绑定到特定的CPU,这样可以减少调度的开销和保护关键进程或线程. 进程绑定到CPU Linux提供一个接口,可以将进程 ...
- linux 将进程或者线程绑定到指定的cpu上
基本概念 cpu亲和性(affinity) CPU的亲和性, 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,也称为CPU关联性:再简单的点的描述就将指定的进程或线程绑定到相应的 ...
随机推荐
- java时间切片工具
项目中经常会遇到根据根据时间区间来查询数据的场景, 如时间跨度大可能相应的sql的执行效率会显著降低, 因此可以对时间区间进行切割成若干个小范围的时间片, 这样不仅可以提高sql的性能还可以做一下并发 ...
- java-方法。(新手)
import java.util.ArrayList; //导入包.import java.util.Iterator;import java.util.LinkedList;import java. ...
- mysql数据库设计文档-导出字段设计
navicat 是我一直在使用的一个数据库操作工具,非常方便快捷.如果没有可用navicat可以留言邮箱我直接发您. 今天来介绍一下使用navicat导出数据库字段设计.废话不多说,先看导出效果. 查 ...
- drf-jwt分页器详解
drf偏移分页组件 pahenations.py from rest_framework.pagination import LimitOffsetPagination class MyLimitOf ...
- wr720n v4 折腾笔记(一):安装Openwrt
好久没有写过文章了,今天先来个引子:wr720n v4版本安装openwrt 最近弄了个路由器wr720n,想抓包做点东西,于是就先从刷固件openwrt开始吧. 所需工具: 1.wr720n v4路 ...
- go:数据类型
Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 1.基本数据类型 整型 ...
- canvas技术概述
canvas简介 在学习一项新技术之前,先了解这项技术的历史发展及成因会帮助我们更深刻的理解这项技术. 历史上,canvas最早是由Apple Inc. 提出的,在Mac OS X webkit中创建 ...
- Tensorflow实现MNIST手写数字识别
之前我们讲了神经网络的起源.单层神经网络.多层神经网络的搭建过程.搭建时要注意到的具体问题.以及解决这些问题的具体方法.本文将通过一个经典的案例:MNIST手写数字识别,以代码的形式来为大家梳理一遍神 ...
- Hinton老爷子CapsNet再升级,结合无监督,接近当前最佳效果
2017 年,Geoffrey Hinton 在论文<Dynamic Routing Between Capsules>中提出 CapsNet 引起了极大的关注,同时也提供了一个全新的研究 ...
- ArcGIS中影像图去黑边
通常情况下有些影像图的背景会显示黑色,所以需要将影像图的格式转换一下,将黑色背景转换为透明色.具体去除河边的步骤如下: 1.在catalog中,选中要转换的影像图: 2.右键——导出——将栅格导出为不 ...