dpdk-gcc 多线程关键字 __thread_勇zhe无wei的博客-程序员秘密

技术标签: 多线程  dpdk  

__thread 是gcc用于多线程存储局部变量,应该每个线程自己都有一份。

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

__thread int var = 8;

void *func0(void *arg){
    ++var;
    printf("func0:%d\n", var);
}

void *func1(void *arg){
    usleep(3);
    ++var;
    printf("func1:%d\n", var);
}


int main(){

    pthread_t p0, p1;
    int i=0;
    pthread_create(&p0, NULL,  func0, NULL);
    pthread_create(&p1, NULL,  func1, NULL);

    pthread_join(p0, NULL);
    pthread_join(p1, NULL);
    return 0;
}

result:

func0:9
func1:9

代码位置

【1】__thread man

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangxxxww/article/details/60142295

智能推荐

成为程序员高手的几个忌讳_奔跑de五花肉的博客-程序员秘密

1) 不会英语:CS源于美国,重量级的文档都是英文的。不会英语,那么你只能忍受拙劣的翻译和大延迟的文档(翻译出来的文档几乎都是很久以前出版的东西)。2) 急于求成:什么都没学习就开始编程是最大的机会。写C++程序语法都能错,数据结构连线性表都不知道,数据库不知道关系模型,TCP编程不知道socket,还是先坐下来学习几年再说(如果说工作急需,我只能说:早干嘛去了)3) 过于好问:勤学好问是

python如何画贝塞尔曲线_​用Python把图做的好看点:用Matplotlib画个Circos和弦图..._weixin_39686192的博客-程序员秘密

一直觉得circos图 很好看,最近尝试了一下 对中间关系曲线的 绘制主要利用的数学工具是 贝塞尔曲线但是对贝塞尔曲线中间的控制点取值 还是不太满意 造成部分曲线看着有点奇怪成品大概是这样代码如下:import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport randomStart1=[0 for i in r...

结构重参数化之三:Diverse Branch Block_diversebranchblock_00000cj的博客-程序员秘密

paperDiverse Branch Block: Building a Convolution as an Inception-like Unitcodehttps://github.com/DingXiaoH/DiverseBranchBlock前言有了前两篇文章ACNet和RepVGG的铺垫,本文就忽略背景介绍,直接进入核心内容的讲解。本文首先总结了六种不同的结构重参数化的转换方法,然后借鉴Inception的多分支结构提出了一种新的building block:Di...

转:目标检测定位与分割论文阅读心得总结:FCN U-Net R-CNN FR-CNN Faster R-CNN Mask R-CNN_目标检测定位后像素级分割_三世的博客-程序员秘密

转载:https://blog.csdn.net/qq_28660035/article/details/78974319目前,基于区域的方法主要分为两类:任务解耦和的RCNN[1]和任务高度耦合的FCN[2]。RCNN是将任务分解,目标检测、定位与分割依次逐一进行,前者决定后者的输入,因此称为任务解耦和。而FCN则将三类任务在一个网络中同时进行,不分先后,任务高度耦合。FCN已在医学图像...

java注解RetentionPolicy范围_拉丁卡特的博客-程序员秘密

RetentionPolicy.SOURCE编译class文件消失如:Lombok原理是:基于JSR 269的Java注解处理器,java编译器在编译源代码的过程中增加了annotation processing 过程,即在生成AST(抽象语法树)后,对AST做了修改生成对应的二进制字节码。但是IDE中并不能识别加了Lombok注解的源码语法,如A类@getter在B类中调用,所以要安装...

tcp/ip协议栈--socket API 之connect()_socket_api.connect_庞叶蒙的博客-程序员秘密

0x01 缘由     前面一些博文简单学习了服务端 socket()、bind()、listen()、accept()过程,当没有客户端连接服务端时,服务端进程阻塞在accept处,等待客户端连接。客户端连接服务端利用connect() API。此处学习。0x02 API介绍     0x03 源码单步跟踪     在另一台服务器运行server端,在guest主机运行cli

随便推点

多源最短路和单源最短路_小齐不怕小韩的博客-程序员秘密

多源最短路例题:[USACO08OPEN]Clear And Present Danger S#include &lt;bits/stdc++.h&gt;using namespace std;int n,m,a[110][110],b[10010];int main(void){ cin&gt;&gt;n&gt;&gt;m; for(int i=1;i&lt;=m;i++) cin&gt;&gt;b[i]; for(int i=1;i&lt;

时域,空域,频域的基本概念_时域和空域_M李丽的博客-程序员秘密

基本概念:时域:时间域频域:频率域空域:空间域好像和没说一样,详解如下:1,空间域:       空间域(spatial domain)也叫空域,即所说的像素域,在空域的处理就是在像素级的处理,如在像素级的图像叠加。通过傅立叶变换后,得到的是图像的频谱。表示图像的能量梯度。2,频率域:       频率域(frequency domain。)任何

80x86寄存器_shrekmu的博客-程序员秘密

80x86寄存器 【注意】本文使用到的汇编指令的语法是Intel汇编语法,除此之外的内容与汇编语法无关 【80x86寄存器】  32位CPU所含有的寄存器有: ・4个32位通用寄存器(EAX、EBX、ECX和EDX) ・2个32位变址和指针寄存器(ESI和EDI) 2个32位指针寄存器(ESP和EBP) ・6个[16位(段选择符)+隐藏部分(描述符缓冲)]段寄存器(

cordova+vue混合开发处理返回键问题(双击退出)_GL_陈凯的博客-程序员秘密

本例基于cordova+vue的混合开发。data中定义变量 :data(){ return{ exitAppTicker:0 };}methods定义处理返回键方法,这里示例的是处理安卓双击提示退出,isHomePage自己根据自己项目路由路径或名字判断:backbutton(){ document.addEventListener...

模型评估(一)_算法星球的博客-程序员秘密

只有选择与问题相匹配的评估方法,才能快速的发现模型选择或训练过程中出现的问题,迭代地对模型进行优化。模型评估主要分为离线评估和在线评估两个阶段。针对分类、排序、回归、序列预测等不同类型的机器学习问题,评估指标的选择也有所不同。有针对性地选择合适的评估指标、根据评估指标的反馈进行模型调整,是机器学习在模型评估阶段的关键。一、评估指标的局限性在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不同的指标进行评估。在诸多的评估指标中,大部分指标只能片面地反映模型的一部分性能。如果不能合理地运用评估指标,

Thread.currentThread().getContextClassLoader().getResource(“pathName“).getPath()路径乱码问题_奇点_97的博客-程序员秘密

使用Java的反射机制时,这就需要使用Class.forName()方法。使用该方法需要读取properties文件,继而需要创建流,而创建流就需要获取文件读取地址。而使用上述方法创建地址时报错,分析错误发现,地址有问题,获取的地址中出现了乱码,继续测试,发现只要地址中出现中文或者特殊字符就会出现该问题。Exception in thread "main" java.io.FileNotFoundException: F:\%e5%b7%a5%e4%bd%9c\cs%e8%87%aa%e5%ad%a6

推荐文章

热门文章

相关标签