首页 > 资讯 > > 内容页

如何理解线程安全?|世界速讯

发表于: 2023-05-07 23:12:56 来源:面包芯语

大家好,我是LinuxZn。

本次分享线程安全的基础知识。


(资料图片仅供参考)

可重入函数应当满足条件:

可重入函数未必是线程安全的;线程安全函数未必是可重入的。

例子1:上述例子中的increment_counter函数是线程安全的,但是并不是可重入的。因为使用了互斥锁,如果这个函数用在可重入的中断处理程序中,如果在pthread_mutex_lock(&mutex)和pthread_mutex_unlock(&mutex)之间产生另一个调用函数increment_counter的中断,则会第二次执行此函数,此时由于mutex已被lock,函数会在pthread_mutex_lock(&mutex)处阻塞,并且由于mutex没有机会被unlock,阻塞会永远持续下去。

例子2:一个函数打开某个文件并读入数据。这个函数是可重入的,因为它的多个实例同时执行不会造成冲突;但它不是线程安全的,因为在它读入文件时可能有别的线程正在修改该文件,为了线程安全必须对文件加“同步锁”。

相关资料:

以上就是本次的分享,如果觉得文章有用,欢迎收藏、转发!

注意

猜你喜欢:

Hello系列 | Shell编程必备简明基础知识

Hello系列 | 多线程编程基础!

Hello系列 | cmake简明基础知识

标签:

Copyright ©  2015-2022 公司头条网版权所有  备案号:沪ICP备2022005074号-20   联系邮箱:58 55 97 3@qq.com