与多进程编程对比:
1 创建多进程相比起创建多线程会 消耗大量的系统资源
2 进程结束比起线程结束,释放的资源也更多,子进程很快结束,系统负担加重
3.多线程由于在同一个进程中,很多资源是共用的。所以线程间数据共享也非常高效快捷。
需要注意的两点是:
1.由于多线程在一个进程中,一个进程只有一个pcb,因此不需要考虑主线程和函数线程没有全部close,占用描述符的问题。主线程和函数线程只用其中一个close就好,一般是由函数线程完成具体的收发数据后与客户端断开链接时用close,不能主线程close。
2.主线程创建函数进程时传入的参数为描述符。描述符要值传递,不可地址传递,因为下一次循环后,这个c就失效或者改变了,如果地址传递的话就不能正确打开连接了。
其实和多进程编程大同小异,多进程是服务器fork子进程 ,多线程是服务器主线程main pthread_create函数线程。
服务器代码
客户端代码:
结果