介绍:一组并发线程运行在同一进程上下文中,每一个线程都有自己独立的线程上下文,包括线程ID、栈、栈指针、程序计数器、条件码和通用目的寄存器。每个线程和其他线程一起共享进程上下文的其他部分,包括整个用户虚拟地址空间(由代码段、读/写数据、堆以及所有共享库的代码和数据区组成)。线程也共享打开的文件集合。当存在共享资源的时候,对资源的访问需要同步。这时候使用线程编写程序的时候,需要编写具有线程安全性属性
分类:
编程语言 时间:
2017-12-07 15:15:19
阅读次数:
157
参考:http://blog.csdn.net/wenhui_/article/details/6889013 重入:重新进入 区别:多个任务能否同时调用一个函数,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象 满足下面条件之一的多数是不可重入函数:(1)使用了静态数 ...
分类:
其他好文 时间:
2017-09-20 14:49:53
阅读次数:
149
一、可重入函数 1.可重入函数介绍 main函数调?insert函数向?个链表head中插?节点node1,插?操作分为两步,刚做完第?步的 时候,因为硬件中断使进程切换到内核,再次回?户态之前检查到有信号待处理,于是切换 到sighandler函数,sighandler也调?insert函数向同? ...
分类:
编程语言 时间:
2017-06-15 14:22:25
阅读次数:
231
在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。 相反,肯定有一个安全的函数,这个安全的函数又叫可重入函数。那么什么是可重入 ...
分类:
其他好文 时间:
2017-04-22 20:40:20
阅读次数:
191
前文介绍了最基本的信号接收和处理,但这有无可能带来一些问题呢? 本文将通过两个思考,来分析可能带来的问题以及解决方法。 ...
分类:
其他好文 时间:
2017-01-28 22:53:54
阅读次数:
377
最近经常听到这个名词,以前也听到过,不过接触更多的是“线程安全问题”,而且本人也一直理解的是两个名字的含义是一样的。今天仔细总结一下这个名词相关的概念。 引用博文:可重入函数和不可重入函数 (http://www.cppblog.com/franksunny/archive/2007/08/03/2 ...
分类:
其他好文 时间:
2016-10-18 18:35:43
阅读次数:
216
线程安全:一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。我们定义四类(有相交的)线程不安全函数。 第1类:不保护共享变量的函数 将这类线程不安全函数变为... ...
分类:
编程语言 时间:
2016-09-05 21:01:35
阅读次数:
176
1. 可重入函数 (1)不使用静态变量和全局非const变量 (2)不使用锁 (3)不调用任何不可重入函数 (4)使用volatile防止寄存器缓存变量 See Aslo : CPU的乱序执行,会使得对共享变量的访问变得不可知 2. 线程 用户使用的是用户态线程,Kernel运行的是内核态的线程 O ...
分类:
编程语言 时间:
2016-08-22 12:21:52
阅读次数:
169
在多任务操作系统环境中,应用程序的各个任务是并发运行的,所以会经常出现多个任务“同时”调用同一个函数的情况。这里之所以在“同时” 这个词上使用了引号,是因为这个歌”同时“的含义与我们平时所说的同时不是一个概念。这里所说的“同时”实质上是指多个任务在同一个时间段内交叉调用同一个函数的情况,这是并发系统 ...
分类:
其他好文 时间:
2016-08-20 11:22:55
阅读次数:
193
本文转载自:http://www.cnblogs.com/parrynee/archive/2010/01/29/1659071.html 可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 ...
分类:
其他好文 时间:
2016-08-14 16:15:31
阅读次数:
133