1. 多线程中的newfd,能否修改成全局,不行,为什么?
不行,同一个进程下的线程共享所有资源,包括文件描述符表,当一个线程改变值的时候,另一个线程也会一起发生改变
一但主线程再次连接一个客户端,文件描述符发生改变,只能与新连接的客户端通信,与原来客户端通信的文件描述符改变成新客户端的文件描述符,所以原来的客户端无法通信。
2. 多线程中分支线程的newfd能否不另存,直接用指针间接访问主线程中的newfd,不行,为什么?
不行,同一个进程下的线程共享所有资源,包括文件描述符表,当有新的客户端连接时,改变了void *arg指向的地址里面的值,导致文件描述符改变,无法再次进行通信