我正在使用线程和TCP来实现C语言中的P2P文件传输。我有一个tracker,它跟踪所有连接到它的对等方。当一个对等方第一次连接时,它将其当前目录中的文件发送到tracker,并由tracker将所有对等方的文件放入共享的链接列表中。每个对等方在tracker中都有自己的线程,当一个对等方退出时,tracker关闭该对等方的连接并从链接列表中删除该对等方的所有文件。我关心的是在添加和删除节点时锁定链接列表。我想要安全地能够从各个线程修改链接列表。我已经编写了用于添加/删除链接列表中的内容以及搜索的代码(不确定是否需要在搜索时使用锁)。如何修改我的代码以确保线程之间的链接安全?