【发布时间】:2016-01-28 12:43:36
【问题描述】:
我只是使用 C 编程的初学者。对于我的大学项目,我想创建一个多线程服务器应用程序,多个客户端可以连接到该应用程序并在那里传输可以保存在数据库中的数据。
在阅读了许多教程后,我对如何使用 pthread_create 创建多个线程感到困惑。
在某处它是这样完成的:
pthread_t thr;
pthread_create( &thr, NULL , connection_handler , (void*)&conn_desc);
在某个地方就像
pthread_t thr[10];
pthread_create( thr[i++], NULL , connection_handler , (void*)&conn_desc);
我尝试在我的应用程序中实现这两者,并且似乎工作正常。我应该遵循以上两种方法中的哪种方法是正确的。 抱歉英语和描述不好。
【问题讨论】:
-
他们都使用相同的方法pthread_create,所以在某种意义上他们在做同样的事情。除此之外,如何存储 pthread 句柄(pthread_t 类型)是一个选择问题。第二个好像最多存储十个线程,第一个只是处理一个线程。
-
第二个
thr[i++]应该是&thr[i++]。 -
@Selçuk Cihan 如果我做类似 for(i=0;i
-
是的,它将创建 10 个线程,但您将丢失前 9 个线程的引用。
标签: c multithreading pthreads