C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了即使提供了NULL参数,C标准time()函数线程也是安全的吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_450_1@看起来有点像一个愚蠢的问题,但它让我思……

根据here,在兼容系统上需要时间线程安全,对吗?无论函数的参数如何,此要求都成立.如果提供NULL参数,则列出一些函数不需要是线程安全的,并且不包括时间.

所以看起来任何足够的POSIX兼容系统应该具有线程安全的时间实现.

但是,POSIX系统是否可以选择在实际上使其成为指针并且仍然符合要求的情况下实现time_t?因此,如果提供一个NULL参数来存储结果,那么它的线程安全上的所有赌注都不会被关闭,因为它可能会返回指向某个静态存储的指针吗?或者是否有一些我在这方面缺少的time_t要求或约定?

我最好如何在几个UNIX平台上验证时间是否是线程安全的?特别是AIX,HP-UX,Linux和Solaris.在调试器中单步执行反汇编可能会有效,但实现可能会发生变化.

解决方法

是的,它是线程安全的.
time_t time( NULL );

如果它实现了一个内部值,那么在它返回时,它总是必须从内部值复制到返回值(寄存器?).该副本将使其成为线程安全的,因为它适合所有现代处理器的单一副本.

@H_171_14@mov eax,static_internal_value return

想象一下情况并非如此,并且有2个线程进来.他们都会复制出相同的值 – 再次,看不出这是怎么回事.

thread 1                                    thread 2
                                            mov eax,static_internal_value
mov eax,static_internal_value
return 
                                            return

大佬总结

以上是大佬教程为你收集整理的即使提供了NULL参数,C标准time()函数线程也是安全的吗?全部内容,希望文章能够帮你解决即使提供了NULL参数,C标准time()函数线程也是安全的吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。