首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第26章 线程

第26章 线程

作者头像
_gongluck
发布于 2018-03-09 07:39:51
发布于 2018-03-09 07:39:51
64400
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <pthread.h>

//线程
int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func)(void*), void *arg);
int pthread_join(pthread_t *tid, void **status);
pthread_t pthread_self(void);
int pthread_detach(pthread_t tid);
void pthread_exit(void *status);

//线程特定数据
int pthread_once(pthread_once_t *onceptr/*PTHREAD_ONCE_INIT*/, void (*init)(void));
int pthread_key_create(pthread_key_t *keyptr, void (*destructor)(void *value));
void *pthread_getspecific(pthread_key_t key);
int pthread_setspecific(pthread_key_t key, const void *value);

//互斥锁
int pthread_mutex_lock(pthread_mutex_t *mptr);
int pthread_mutex_unlock(pthread_mutex_t *mptr);

//条件变量
int pthread_cond_wait(pthread_cond_t *cptr, pthread_mutex_t *mptr);
int pthread_cond_signal(pthread_cond_t *cptr);
int pthread_cond_broadcast(pthread_cond_t *cptr);
int pthread_cond_timedwait(pthread_cond_t *cptr, pthread_mutex_t *mptr, const struct timespec *abstime);//gettimeofday clock_gettime
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux网络编程之posix 线程(二):线程的属性和 线程特定数据 Thread-specific Data
本文介绍了多线程和多进程的区别,从多个方面进行对比,包括资源占用、调度开销、并发度、线程局部存储、线程间通信、资源竞争、性能评估等方面。同时,还介绍了多线程在操作系统、数据库、网络编程、高性能计算等领域的应用,以及多线程技术的未来展望。
s1mba
2017/12/28
1.2K0
linux网络编程之posix 线程(二):线程的属性和 线程特定数据 Thread-specific Data
线程源码分析之specific.c(基于linuxthreads2.0.1)
该文件是线程私有数据的实现。在线程tcb里有一个数组,保存了一系列的键对值。从而实现了线程的私有数据存储。线程想拥有自己的数据时,首先获取一个键,然后在tcb中保存一个键对值即可。
theanarkh
2019/10/08
1.1K0
Linux下多线程编程详解简介
上面的代码很简单,就是启动一个线程,然后先线程里循环打印字段字符串。我们就以这个最简单的例子来开口。
用户2929716
2018/08/23
4.5K0
Linux笔记(18)| 线程基础(二)
上一节里讲了线程的基本概念,和进程的关系等等。这一节来深入一些,讲一讲具体的一些知识。
飞哥
2020/11/25
6840
Linux笔记(18)| 线程基础(二)
Linux多线程Pthread学习小结
POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程.该标准定义内部API创建和操纵线程.
阳光岛主
2019/02/20
2.3K0
12(线程控制)
线程属性主要有: (1)线程的分离状态属性detachstate, (2)线程栈末尾的警戒缓冲区大小guardsize, (3)线程栈的最低地址statckaddr, (4)线程栈的大小stacksize。 如果对现有某个线程的终止状态不感兴趣的话,可以使用pthread_detach函数让操作系统在线程退出时候收回它所占用的资源。
提莫队长
2019/02/21
6130
多线程编程C语言版
什么是多线程,提出这个问题的时候,我还是很老实的拿出操作系统的书,按着上面的话敲下“为了减少进程切换和创建开销,提高执行效率和节省资源,我们引入了线程的概念,与进程相比较,线程是CPU调度的一个基本单位。”
DeROy
2021/11/16
3.9K0
多线程编程C语言版
POSIX之Thread-Specific Data
进程里的多个线程,共享该进程的全局变量。Posix定义了一种Thread-Specific Data,它看起来是个全局变量,所有线程都可以使用它,而它的值在每一个线程中又是单独存储的。
Taishan3721
2022/12/05
2960
try-catch 的实现
基本所有的编程语言都会有异常捕捉的语法,try-catch 基本是所有编程语言都会有的信息,他会捕捉 try 中语法错误,如果存在语法错误就会执行 catch 的内容。
ge3m0r
2024/06/01
4070
【线程同步】条件变量
条件变量不是锁,它经常和互斥量组合使用。以生产者消费者模型为例,当前有多个消费者线程竞争一个资源,当资源为空时,消费者线程会阻塞在一个条件上,等待生产者通知,生产者写数据到临界区并通知消费者,此时消费者去竞争这个资源并读取数据。它是这样实现的,第一个线程访问资源的时候,获得互斥锁,调用pthread_cond_wait将会释放锁,并阻塞在条件cond上面,这是第二个线程到来,依然可以获得互斥锁,然后这个线程如果调用pthread_cond_wait也会会释放锁,并阻塞在条件cond上面,这样,所有线程就都阻塞在cond上面。
mindtechnist
2024/08/08
3400
【线程同步】条件变量
『腾讯后台开发』实习生技能要求
如题,应届生除了要良好地掌握算法和数据结构以外,以下一些技能点列表希望对大家有帮助,有兴趣的朋友可以参考这个针对性地补缺补差。文章列出的技能点有的要求熟悉,有的了解即可,注意技能点前面的修饰词。如果没有明确给出“熟悉”“了解”等字眼,要求均为熟悉。 一、操作系统方面 多线程相关与线程之间同步技术 熟练使用(但不局限于)以下linux API linux下的线程创建、等待、获取线程id 1int pthread_create(pthread_t *thread, const pthread_attr_t *
范蠡
2018/07/25
9920
Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝慢慢看(2)
什么叫互斥量,顾名思义就是咱这么多人,只能有一个使用这个资源,就像共享小单车,一次只能给一个人用,一个人下车锁车了,另一个人才能去扫码开锁。
看、未来
2020/08/25
5310
Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝慢慢看(2)
Linux同步机制(二) - 条件变量,信号量,文件锁,栅栏
1 条件变量 条件变量是一种同步机制,允许线程挂起,直到共享数据上的某些条件得到满足。 1.1 相关函数  #include <pthread.h>  pthread_cond_t cond = PTHREAD_COND_INITIALIZER;  int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t*cond_attr);  int pthread_cond_signal(pthread_cond_t *cond);  int
三丰SanFeng
2018/01/16
3.1K0
linux中实现线程同步的6种方法
最后运行的结果不是固定的,有可能是0、-1,如果有这个ticket_num变量代表是库存的话,那么就会出现库存为负数的情况,所以需要引入线程同步来保证线程安全。
全栈程序员站长
2022/09/14
1K0
Linux多线程编程(不限Linux)
 线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我见到这样一道面试题:   是否熟悉POSIX
用户6754675
2020/03/03
5.2K0
UNPv1第二十三章:线程
在传统的UNIX模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理。UNIX下的大多数网络服务器程序都是这么编写的,这在我们的并发服务程序例子中可以看出:父进程接收连接,派生子进程,子进程处理与客户的交互。
提莫队长
2019/02/21
5590
POSIX之Condition Variable
Condition Variable(简称Condition)是Posix定义的一种同步机制 - Thread为了某些数据的特定状态,而阻塞执行,等待其它Thread的通知。使用时有个限制 - Condition Variable必须与Mutex关联使用。怎么感觉有点像关联到信号量的Event?
Taishan3721
2022/12/05
6600
POSIX之Condition Variable
Linux内核编程--进程控制,线程控制,锁机制
每个进程都有一个非负整型表示的唯一进程ID。进程ID是可复用的,当一个进程终止后,其进程ID也会被其他进程使用。
Coder-ZZ
2022/05/09
1.3K0
Linux内核编程--进程控制,线程控制,锁机制
Linux多线程编程(二)
在单线程的程序里,有两种基本的数据:全局变量和局部变量。但在多线程程序里,还有第三种数据类型:线程数据(TSD: Thread-Specific Data)。
efonfighting
2019/09/24
1.9K0
Android跨进程通信IPC之2——Bionic
Bionic库是Android的基础库之一,也是连接Android系统和Linux系统内核的桥梁,Bionic中包含了很多基本的功能模块,这些功能模块基本上都是源于Linux,但是就像青出于蓝而胜于蓝,它和Linux还是有一些不一样的的地方。同时,为了更好的服务Android,Bionic中也增加了一些新的模块,由于本次的主题是Androdi的跨进程通信,所以了解Bionic对我们更好的学习Android的跨进行通信还是很有帮助的。
隔壁老李头
2018/08/30
1.8K0
相关推荐
linux网络编程之posix 线程(二):线程的属性和 线程特定数据 Thread-specific Data
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档