线程函数传参|学习笔记

简介: 快速学习线程函数传参

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频线程函数传参】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11059


线程函数传参

 

内容介绍:

一、验证线程函数传参

二、创建线程一传参

 

一、验证线程函数传参

在创建线程的时候,void*arg参数是给线程函数传参的,是通用类型的指针,4个字节。

也就是说给线程函数传参的时候只能传四个字节,可以传输地址亦或是一个整数,整数也是四个字节。

在创建线程一的时候传输“hello,world”传一个指针进去,此时的arg就指向h;一旦创建线程成功,hello,word这个字符串会给形参arg赋值。此时 进行打印字符串。

Printf(“%s\n,(char*)arg);打印的时候需要注意,因为arg是通用指针,所以将其强制转换成字符指针,进行打印。

 

二、创建线程一传参

在创建线程二的时候,定义一个整型变量,int  num=100;将num传进去,也是四个字节,传num的地址也可以。

他的形参是一个指针,也可以容纳下四个字节。将其打印,将指针强制转换成整型,最好传输地址。

注意!!num是指针类型,但是你将其转换成整数,进行强制类型转换。(Void*)num。将while(1)打开,否则进程很快结束。

编辑器中输入./pthread可以看到100和hello word都已经被打印出来了。说明在创建线程的时候可以给线程传参。

最好传递地址,将(void*)num改为&num,取num的地址给他,arg是num的地址,将(int)arg强制转换为整型指针,

改为:*((int*)arg))即可。以上则为线程函数传参。

相关文章
|
1月前
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
91 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
|
1月前
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
Lua的面向对象编程、协同线程与协同函数的概念和使用,以及Lua文件I/O操作的基本方法。
32 4
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
|
1月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
47 6
|
1月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
25 0
C++ 多线程之线程管理函数
|
1月前
FFmpeg学习笔记(二):多线程rtsp推流和ffplay拉流操作,并储存为多路avi格式的视频
这篇博客主要介绍了如何使用FFmpeg进行多线程RTSP推流和ffplay拉流操作,以及如何将视频流保存为多路AVI格式的视频文件。
184 0
|
3月前
|
调度
多线程学习笔记
这篇文章是多线程学习笔记,涵盖了线程与进程的概念、多线程实现方式、线程状态、线程同步与不安全示例、死锁问题以及生产者与消费者问题等多线程编程的关键知识点。
多线程学习笔记
|
3月前
处理串口线程数据的函数
【8月更文挑战第4天】处理串口线程数据的函数。
30 4
|
3月前
|
Dart 编译器 API
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
|
6月前
|
NoSQL 网络协议 关系型数据库
redis-学习笔记(redis 单线程模型)
redis-学习笔记(redis 单线程模型)
56 3
|
6月前
|
安全 Java 编译器
多线程 (下) - 学习笔记2
多线程 (下) - 学习笔记
46 1