线程编程与 Java 线程详解
在编程领域,线程编程是实现并发和并行的重要手段。下面将详细介绍线程编程的相关知识,特别是 Java 线程的创建、同步以及可能出现的死锁问题。
线程特定数据与线程局部存储
在多线程编程中,线程特定数据(Thread-Specific Data)是一种重要的机制。可以通过一系列函数来管理线程特定数据的键和值。
- pthread_key_delete(pthread_key_t key) :用于删除一个键。
- pthread_setspecific(pthread_key_t key, void *value) :每个线程可以通过此函数将新的数据值与键关联起来。通常传递动态生成的数据对象的地址作为值,要避免传递局部变量的地址,因为函数终止后该地址将不再有效。
- pthread_getspecific(pthread_key_t key) :用于检索与键关联的数据。调用线程总是获取它之前使用 pthread_setspecific() 关联的值。如果还没有关联数据,则返回 NULL ;如果是其他线程关联了数据,而不是调用线程,则也返回 NULL 。
除了线程特定数据,C99 标准引入了线程局部存储(Thread-Local Storage,TLS)机制。使用 _Thread 存储类关键字声明变量,每个线程将获得该变量的一个独立实例,线程终止时该实例将被删除。 _Thread 存储类关键
超级会员免费看
订阅专栏 解锁全文
9272

被折叠的 条评论
为什么被折叠?



