当前位置:嗨网首页>书籍在线阅读

09-线程特有数据的实现限制

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

31.3.5 线程特有数据的实现限制

正如对线程特有数据典型实现过程的描述所揭示的,实现可能要对其所支持的线程特有数据键的数量加以限制。SUSv3 要求至少支持 128(_POSIX_THREAD_KEYS_MAX)个键。应用程序要么通过对PTHREAD_KEY_MAX(定义于<limits.h>)的定义,要么通过调用sysconf(_SC_THREAD_KEYS_MAX),来确定实际支持的键数量。Linux支持多达1024个键。

即使128个键对于大多数应用来说也已经绰绰有余。这是因为,每个库函数应该只会使用到少量的键,通常会只用一个。如果一个函数需要多个线程特有数据的值,通常可将这些值置于一个结构中,并将该结构仅与一个线程特有数据的键关联。