永发信息网

printf()经常有重入和性能上的问题。帮忙解释一下重入、性能上的问题

答案:3  悬赏:0  手机版
解决时间 2021-03-28 20:53
printf()经常有重入和性能上的问题。帮忙解释一下重入、性能上的问题
最佳答案
重入:一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象
举个例子比如双核计算机多线程同时打印文本就可能把文本交替的打印出来了,不是预期要的结果一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果
假设有这么个函数
void fun()
{
//...这个函数对FLOAT寄存器进行操作
}
假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存器中,而就在这时被中断了,而中断函数或者另一个进程也调用fun函数,这时第二次调用的fun函数在执行的过程中就会破坏第一次FLOAT寄存器中的结果,这样当返回到第一次fun函数的时候,结果就不正确了。
可以把fun函数理解为printf()函数。
性能:上述的问题也属于性能问题
全部回答
楼上的解答都正确,只不过角度不同。
先解释重入的问题:
printf()函数与硬件相关,硬件端口相当于全局变量,函数内部的全局变量,导致该函数不可重入。
性能上的问题:
对于并发或同时执行的多进程或任务,若要正确使用printf()函数,必须互斥使用,在一个进程或任务执行printf ()时,其他使用printf()的进程或任务只能等待,不能及时显示。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么受伤的都是老实人
词语补充:()()孤谐
推手推广是骗人的吗
毛豆和鱼能同时吃吗?
【80分】FL studio 钢琴窗移动音色的问题
女人帮妞儿第一季去哪里可以看
小东北幼儿园地址有知道的么?有点事想过去!
何其沧的角色经历
上海交大安泰经济毕业月收入怎么样啊
管道燃气灶电池用完了用明火点火能点着吗
负0.75的反对数
dim和redim什么区别
徐本禹是华中农业大学的一名学生。大二时,他
成语自什么奋什么
在丹麦的留学生打工一个月能拿多少钱?
推荐资讯
马六甲板材桐木好还是松木好
原阳县原武镇每逢初几有二手货车市场!
写出同类单词附中文:There are twelve pupil
求中国LPL2015 全部战队的战绩完整计分表…
联想的八代标压笔记本什么时候出
雪佛兰骞欧3汽车报价
诗美诗格spa养生馆在什么地方啊,我要过去处
以逆境为话题的作文600字
试述人民主权原则
心悸怎么办
请问这题为什么选冷锋不远反气旋,有什么区别
今度 私の うちに 游びに 来て ください 这是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?