【发布时间】:2021-07-12 05:49:02
【问题描述】:
我对 C 和线程编程还很陌生。
我正在为二叉搜索树创建函数,例如插入、搜索和删除。但我被指定让这些函数线程安全。
所以我的问题是如何使这些函数线程安全,我需要做什么?以及关于线程的一般建议?
举个例子:我已经开始使用搜索功能,但是您如何确保该线程安全?您可以做一些简单的常见事情来使这些线程安全吗?
int search (node* root, int number)
{
if(root==NULL)
return 0;
else if(number==root->data)
return 1;
else if(number<=root->data)
return search(root->left,number);
else
return search(root->right,number);
}
我正在使用 POSIX。
【问题讨论】:
-
你做过研究吗?比如搜索“make c code thread safe”?
-
您的主要选择是一个大锁,或多读/单写锁,具体取决于预期的工作负载。
-
@stark 一把大锁?这会是什么样子?
-
一个围绕所有访问的互斥锁。除非您以后遇到性能问题,否则不要费心尝试其他任何事情。先正确,后性能:)
标签: c multithreading thread-safety posix