RC 在多线程/多处理的上下文中代表啥?

Posted

技术标签:

【中文标题】RC 在多线程/多处理的上下文中代表啥?【英文标题】:What does RC stand for in the context of multithreading/multiprocessing?RC 在多线程/多处理的上下文中代表什么? 【发布时间】:2018-12-03 06:23:14 【问题描述】:

我看到人们在使用多线程时经常使用变量名RCrc,例如在this Linux pthread_setname_np manual 中,有:

rc = pthread_create(&thread, NULL, threadfunc, NULL);

在这种情况下,RC 代表什么?

我怀疑它的意思是“返回码”,但我没有找到权威来源来验证。

【问题讨论】:

我相信你是对的。 pthread_create 返回错误码,所以可能是返回码 【参考方案1】:

是的,很好的猜测,RC 或 rc 是常用的具有返回值的变量名 来自编程中的 API。

但这只是API返回类型的局部变量,其他常用的还有ret_code,不过是取名API返回值的问题。我不认为存在一些文件来解释为什么这个 RC 命名存在:-)

【讨论】:

【参考方案2】:

您不会有权威来源解释这一点。人们可以随意命名automatic variables(前提是与scope 中的其他内容或关键字不冲突)。

但您的猜测(rc 表示“返回码”)可能是一个不错的猜测。

但是,等效代码 int i = pthread_create(&thread, nullptr, threadfunc, nullptr); 可能被视为与您的示例一样可读。我个人倾向于在我的 C 代码中将此类局部变量命名为 int err = pthread_create(&thread, NULL, threadfunc, NULL);

PS。使用NULLpthread_create 建议使用POSIX threads 的C 程序(参见pthreads(7)),而不是C++ 程序。在真正的现代 C++11 中,您最好使用 nullptrstd::thread 代替(即使大多数实现确实会在 pthreads(7) 以上实现它)

【讨论】:

C++ 非常重视向后兼容性,因此使用NULL 并调用C API 的C++ 代码与使用nullptrstd::thread 调用C++ 代码一样“纯正”。也许“现代 C++”更适合它。

以上是关于RC 在多线程/多处理的上下文中代表啥?的主要内容,如果未能解决你的问题,请参考以下文章

线程池

线程池

volatile

在多线程 C++11 程序中未处理异常时会发生啥?

在多线程 C++11 程序中未处理异常时会发生啥?

说实话ThreadLocal真不是啥高级的东西