2011-09-29 92 views
5

将我碰到一个错误,如果我创建了一个并行线程,这是由主函数创建一个内pthread_create的。如果,我可以那么什么东西我应该照顾?我可以在pthread中创建一个pthread,它已经由main创建了吗?

重要....:我在做一个socket编程,在那里我已经开通的各5个线程在其上侦听的端口,当过我收到一个消息,我想创建一个线程这需要在消息中分离出来的端口并使用pwrite写入文件。所以,我有几个问题,请你能帮我吗?

如果没有,那么什么是线程中创建线程的另一种解决方案..?

还是会再给我分割故障???

否则我会碰到一些竞争条件....

+1

是的,你可以做到这一点。 –

回答

4

pthread_create创建一个新线程。独立于调用 的地方。在端口上创建一个连接的新线程几乎是标准程序。

+0

不过,我的问题是我从recv的线程所采取的数据和发送它作为一个arguement到的recv后创建的线程....现在因为有5个线程同时听,这不是要在接收的创造竞争条件包..... – Invictus

+0

@Invictus无论您创建线程的位置如何,您都必须遵循常用的线程安全规则。很大程度上取决于你如何使用accept来监听,每个返回的int都是一个单独的套接字,它可以毫无问题地传递给子线程。如果您正在处理UDP连接并使用'recvfrom'进行侦听,则应为每个调用分配一个新的缓冲区,并将接收到的缓冲区传递给子线程,以便在线程通过时释放它。在这两种情况下,每个线程都应该监听不同的套接字(端口)。 –

相关问题