linux下多线程的创建和结构体传参

Linux c多线程与c++多线程的基础写法 最近工作需要,对多线程做了一点了解,现在将多线程的创建,传参函数做个小结。 一、linux c多线程 1.头文件:#include <pthread.h> 2. 创建线程:pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg); //参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数。 阅读详情

下面总结一下linux下多线程的创建和传参,这里的传的参数是结构体的地址,然后在子线程中输出所传结构体对象的值。

实现过程非常简单,其中pthread_create()创建子线程,pthread_join()是等待阻塞子线程结束,pthread_exit()是子线程退出函数,typedef struct _config{}config;表示给结构体取别名。

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

typedef struct _config
{
	int id;
	char *name;
}config;    //结构体别名

void* func(void* arg)
{
	printf("child...\n");
	
	printf("arg.id is:%d\n",((config*)arg)->id);
	printf("arg.name is:%s\n",((config*)arg)->name);

	pthread_exit(NULL);    //子线程退出
}

int main()
{
	pthread_t thread;
	config conf;

	conf.id=3;    //结构体赋值
	conf.name="liubei";

	if(pthread_create(&thread,NULL,func,&conf))    //传结构体地址
	{
		perror("create:");
		return -1;
	}

	pthread_join(thread,NULL);    //阻塞等待子线程结束    
	//sleep(2);
	
	printf("main...\n");

	return 0;
}

​

接下来总结多线程之间同步的互斥锁。

【电击防护篇】电击防护技术详解:从人体效应到接地系统全解析 本文系统讲解了电击防护的关键知识,包括电流对人体的影响(如30mA是心室颤动阈值)、人体电阻特性(700Ω-6100Ω)以及电气接触防护措施。重点分析了TT、TN和IT三大接地系统的结构特点与应用场景,强调TN-S系统最安全,IT系统供电连续性最佳。详细介绍了漏电保护器(RCD)的工作原理与选型指南,建议人身防护选用30mA高灵敏度RCD。文章通过对比表总结三大系统的安全性、成本及适用场景,为电气安全设计提供实用参考。 阅读详情

相关推荐

SQL Server2008详细安装步骤(超详细步骤)

https://pan.baidu.com/s/1yvolqfU-AbiuGrIzblA7pA 提取码:lzw81.下载好安装包后解压到除C盘以外的磁盘,避免系统卡顿2.使用管理员身份打开安装程序注意:使用管理员身份打开时,此时如果显示以下画面属于正常现象,下载安装即可。因为.net现在有很多软件都需要,包括SQLSERVER2008,它里面有visual studio都要有net,电脑系统没有的话安装一下好了。3.选择全新安装或向现有安装添加新功能4.点击确定5.出现以下画面之后,输入产品密钥即可(密钥在

m0_67402774的博客 4万+

linux线程间交互结构体数据,linux基础——linux进程间通信(IPC)机制总结

在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。在linux下有多种进程间通信的方法:半双工管道、命名管道、消息队列、信号、信号量、共享内存、内存映射文件,套接字等等。使用这些机制可以为linux下的网络服务器开发提供灵活而又坚固的框架。1.管道 (PIPE)管道实际是用于进程间通信的一段共享内存,创建...

weixin_32644319的博客 681

Mplus—交叉滞后面板模型(Cross-Lagged Panel Model, CLPM)

本文介绍交叉滞后模型相关知识,以及显变量模型与潜变量模型在Mplus中的语法。

m0_54401011的博客 1万+

【linux多线程的基本操作】

linux多线程的基本操作 文章目录linux多线程的基本操作前言一、多线程的概述二、多线程的创建等待与退出2.1 实验演示三、线程共享内存空间四、线程同步之互斥加锁解锁4.1 互斥锁演示一4.2 互斥锁演示二(死锁)五、线程条件控制实现线程同步总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、多线程的概述 线程是操作系统能

boybs的博客 635

深度学习环境搭建:CUDA、Anaconda、PyTorch 完整安装与验证教程

步骤操作验证命令1安装 CUDA 工具包nvcc -V2安装 Anaconda3创建 yolo 环境4安装 PyTorch5验证 GPU。

qq_37606844的博客 319

ITIL 4 Foundation 自学通关笔记1

ITIL 4 Foundation 自学通关笔记

m0_58817196的博客 950

线程使用1-

1. 基础概念 早期unix系统中,没有线程概念,后来才引入线程 linxu 为了迎合 windows引入了线程 gdb不支持线程,因为gdb比线程出现了早 区别: 线程: 有独立的pcb. 没有独立的进程地址空间,线程在进程内部,共享进程地址空间 进程: 有独立的进程 地址空间,有独立的pcb 线程是分配资源的最小单位,如何理解:* 如果一个进程A有3个线程,那么cpu会把A...

dreams_deng的博客 2402

Ovito隐藏技巧:用Expression Selection快速提取分子链(附模糊背景配置参数)

本文详细介绍了Ovito软件中Expression Selection功能的隐藏技巧,用于从复杂的分子动力学模拟数据中快速、精准地提取目标分子链。通过结合Expand Selection和Invert Selection等修饰器,形成一套高效的工作流,并深入解析了实现SCI论文级渲染效果的景深模糊参数配置,帮助研究者大幅提升数据处理与图片生成效率。

pz890123的博客 867

Linux下多线程的操作

线程是轻量级的进程(LWP:light weight pocess),在Linux环境下线程的本质仍然是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。...

林夕07 1288

UE4逆向实战:如何快速定位UWorld和GName的5种实用技巧(含版本差异分析)

本文详细介绍了UE4逆向工程中快速定位UWorld和GName的5种实用技巧,包括特征码定位法、动态行为分析法、静态符号分析法等,并针对不同版本差异提供了适配方案。特别强调了UWorld作为游戏世界核心容器和GName作为名称管理系统的重要性,帮助开发者高效进行游戏逆向分析。

star的博客 895

Close-By Site Assignment,门店近邻关系在 SAP Retail 物料搜索里的真实价值

SAP零售模块中的"Close-By Site Assignment"功能常被低估,但它在门店现场业务中极为关键。该功能允许预先定义各门店间的近邻关系,当导购或店长查询商品时,系统会自动展示附近门店的库存、价格和促销信息。与单纯的地理距离不同,这种近邻关系可基于调拨频率、业务关联度等业务逻辑定义。维护入口在事务码WSD_CBP中,支持按应用场景(如销售、采购)分别设置不同近邻关系。该功能不同于组织结构,专注于增强搜索体验,特别适合多门店运营场景,能有效提升跨店查询效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4850

pthread_create函数详解(向线程函数传递参数)

一、pthread_create函数: 1、简介:pthread_create是UNIX环境创建线程的函数 2、头文件:#include &lt;pthread.h&gt; 3、函数声明: int pthread_create(pthread_t* restrict tidp,const pthread_attr_t* restrict_attr,void* (*start_rtn)(vo.........

mijichui2153的博客 16万+

第3.2.1章 Eigen代码实战:四元数赋值用法总结及与变换矩阵转换

Eigen库中四元数(Quaternion)的赋值方法解析:Quaterniond和Quaternion<double>本质相同,但Quaterniond是更简洁的别名。主要赋值方式包括直接构造(w,x,y,z分量、旋转矩阵或轴角)、赋值运算符和成员函数赋值。使用时需注意参数顺序、归一化处理和头文件包含,常见错误包括模板参数缺失和构造顺序错误。四元数广泛应用于旋转矩阵转换、姿态组合等场景,合理选择赋值方式能提高代码可读性和正确性。

行知SLAM 586

Linux_c++线程函数的使用

pthread_create函数 创建线程的函数 int pthread_create(pthread_t *pid,const pthread_att_t *attr,void *(*start_routine)(void*),void *arg) pid:指针,指向创建成功的新线程ID attr:指向线程属性结构pthread_attr_t的指针,如果为NULL,则是默认属性 start_routine:线程的回调函数 arg:回调函数的参数信息 创建成功返回0,其余返回值都为创建失败 #inclu

qq_42708024的博客 395

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux下pthread_create创建线程的用法与参数设置详解

在Linux多线程编程中,pthread_create函数是创建线程的核心接口。通过这个函数,程序可以在同一进程内创建多个并发执行的线程,共享进程的内存空间但拥有独立的执行流。

2509_93883384的博客 300

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

多线程编程

互斥锁、信号量、条件变量

weixin_44833976的博客 199

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Linux】多线程(概念,控制)

💬 hello!各位铁子们大家好哇。今日更新了Linux线程的内容。

qinjh_的博客 4107

Linux多线程编程:pthread线程创建、退出、回收、分离、取消

文章目录Linux线程1、简单了解一下线程2、线程创建:pthread_create3、线程传参注意事项4、线程退出:pthread_exit5、线程回收:pthread_join6、线程分离:pthread_detach7、线程取消:pthread_cancel8、线程其他函数9、线程注意事项 Linux线程 1、简单了解一下线程   线程也被称为轻量级进程,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,因为进程切换时需要更新cache和tlb,而线程就不用。由于多个线程访问的都是同一地址空间

weixin_44498318的博客 3万+

【Linux】————多线程(概念及控制)

1.一个冷知识:屏蔽力是一个人最顶级的能力,任何消耗你的人和事,多看一眼都是你的不对。2.你不用变得很外向,内向挺好的,但需要你发言的时候,一定要勇敢。正所谓:君子可内敛不可懦弱,面不公可起而论之。3.成年人的世界,只筛选,不教育。4.自律不是6点起床,7点准时学习,而是不管别人怎么说怎么看,你也会坚持去做,绝不打乱自己的节奏,是一种自我的恒心。5.你开始炫耀自己,往往都是灾难的开始,就像老子在《道德经》里写到:光而不耀,静水流深。

bhbcdxb123的博客 2990

Linux 线程1-线程的概念、线程与进程区别、线程的创建、线程的调度机制、线程函数传参

Linux 线程1-线程的概念、线程与进程区别、线程的创建、线程的调度机制、线程函数传参

weixin_45925859的博客 1393

【Linux】从零开始认识多线程 --- 线程ID

本文深入讲解了线程ID的意义,讲解了底层是如何进行多线程的管理的

叫我龙翔的博客 1619

【Linux】Linux多线程

1.线程概念 什么是进程? 在一个程序里的一个执行路线叫做线程。更准确的定义:线程是一个进程内部的控制序列 一个进程至少都有一个执行线程 线程在进程内部运行,本质是在进程地址空间内运行 在linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化 透过进程虚拟地址空间,可以看到进程的大部分资源,将进程合理分配给每个执行流,就形成了线程执行流   线程的优点 创建一个新线程的代价要比一个新进程小的多 与进程之间的切换相比,线程之间的切换需要操作系统的工作少的多 线程占用的资

金金金金金的博客 246

【Linux多线程】线程的概念

本篇博客将会介绍线程的基本概念,理解线程与进程的区别和联系,以及进程地址空间第四讲

m0_74215144的博客 1238

Linux应用—多线程编程

互斥锁读写锁条件变量信号量线程同步的几种方式-优快云博客。

HRad7282的博客 371

linux应用(三)多线程编程

想要编程来让linux系统“同时”执行多个任务,一种方法是使用多进程,也就是我在执行一个程序,哎,我又开一个程序,操作系统你让它俩“同时”运行;这种方式可以,但进程间的切换开销大,通信和同步较为复杂,不合适;我想实现的是,就开一个程序,这个程序的不同代码段可以“同时”运行;这就要用到多线程;线程是轻量级的进程; 进程是程序的一次动态执行,但是真正执行代码的是线程;操作系统为进程分配资源,进程中的线程来执行任务代码;一个进程至少包含一个线程,即主线程;其他线程(代码创建出来的)为子线程; 注:线程库不在lin

bai_3525的博客 701

linux pthread创建线程传参,Linux中pthread_create传递参数的若干情况

0.背景介绍今天在工作中要使用pthread_create函数开启一个线程,并且需要传递参数,其中遇到了一些问题,现在来总结一下。1.pthread_create介绍函数原型:int pthread_create(pthread_t *tidp,const pthread_attr_t *attr, (void*)(*start_rtn)(void*),void *arg);第一个参数为指向线程标...

weixin_27066963的博客 2295
上一篇: c++多态
下一篇: linux下线程同步之互斥锁
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值