首页 > 试题广场 >

以下关于多线程的叙述错误的是:

[单选题]
以下关于多线程的叙述错误的是:
  • 线程同步的方法包括使用临界区,互斥量,信号量等
  • 两个线程同时对简单类型全局变量进行写操作也需要互斥
  • 实现可重入函数时,对自动变量也要用互斥量加以保护
  • 可重入函数不可以调用不可重入函数
自动变量这里指的是局部变量;

一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。

编辑于 2017-08-31 13:05:14 回复(1)
答案是C
         可重入函数可认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回时,系统回收空间,他是的是局部作用域变量,不需要互斥量。可重入函数对全局变量才需要互斥量保护。
发表于 2016-12-10 13:31:42 回复(0)
自动变量是局部变量,线程私有。
发表于 2018-04-24 21:25:10 回复(0)
可重入除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。如果确实需要访问全局变量(包括static),一定要注意实施互斥手段。可重入函数在并行运行环境中非常重要,但是一般要为访问全局变量付出一些性能代价。
发表于 2017-07-15 21:56:03 回复(0)
答案是C
         可重入函数可认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回时,系统回收空间,他是的是局部作用域变量,不需要互斥量。可重入函数对全局变量才需要互斥量保护。
发表于 2017-04-28 10:14:08 回复(0)
自动变量是线程内私有变量,所以不需要同步互斥
发表于 2019-07-24 09:45:01 回复(0)
自动变量是局部变量,可重入函数可以理解为可以被中断函数
发表于 2019-05-01 21:36:31 回复(0)
自动变量这里指的是局部变量; 一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。
发表于 2019-04-25 17:13:18 回复(0)
一个可重入的函数简单的讲就是可以被中断的函数,可以在函数执行的任何时刻中断它,转入os调度下去执行另一个断的代码,而返回控制时不会出现什么错误,而不可重入的函数由于使用了一些系统的资源,比如全局变量区,中断向量表等,所以它如果被中断的话,就会出现问题,这类函数不能运行在多任务环境下的。
发表于 2018-06-23 17:41:05 回复(0)
自动变量线程私有,在线程栈中,是不会跑出去的,用不着同步互斥
发表于 2018-03-03 15:52:23 回复(0)
自动变量这里指的是局部变量,一般只需对全局变量进行互斥保护。
发表于 2017-08-28 11:42:17 回复(0)