我想使用__thread存储类将一些变量定义为特定于线程的。但是三个问题让我犹豫了:
最佳答案
要回答您的特定问题:
__thread
变量以每个新线程中的初始化值开始。 在我看来,除了实现C/POSIX(例如
errno
等)之外,线程本地存储类实际上不是很有用。避免以上下文指针或类似形式干净地传递必要的状态非常重要。您可能会认为这对于绕开不带上下文指针的qsort
之类的损坏接口(interface)很有用,但是不幸的是,无法保证qsort
将在与称为qsort
相同的线程中调用比较函数。它可能会分解工作,并在多个线程中运行它。对于大多数其他可能可行的解决方法的界面也是如此。关于c - 在C99中使用__thread,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6869391/