使用多个线程c编程修改结构

时间:2015-11-24 19:28:31

标签: c multithreading struct

我一直在互联网上,没有人直接回答这个问题。所以我的主进程中有一个结构,我需要多个线程来修改它。我知道我将需要互斥锁来保护数据,但有没有办法分享指针,而不是将其作为pthread_create中的arg传递。我理解线程共享相同的内存地址,如果我分配一个,那么另一个应该有权访问它。但是在没有传递指针的情况下,线程如何知道某个指针已经存在。

1 个答案:

答案 0 :(得分:2)

你的问题的典型答案是,不是在调用pthread_create时将指针直接传递给线程,而是将指针传递给某个更高级别的结构,该结构用作与线程的通信。 / p>

例如,假设您正在编写一个网络服务器,它接收来自客户端的请求,然后需要处理这些请求。处理来自客户端的请求的线程通常会传递某种可等待队列的地址。当一个线程收到来自客户端的请求时,它会将该请求放入可等待的队列中。处理客户端请求的线程已经在等待放置在该队列上的东西,并且它们从队列中获取有关它们需要处理的请求的信息。