多线程客户端是对单线程客户端的扩展,在原有的基础之上使用了线程技术,SOCKET的创建与关闭都是在子线程中进行:子线程在创建时也创建一个SOCKET,在子线程退出时,将其关闭。这样,在线程并发的时候,产生多个SOCKET同时连接服务器的情景。
线程数目达到1000多线时,程序会出现如下错误:
Thread 1419 terminated abnormally: Bad file descriptor
Thread 1418 terminated abnormally: Bad file descriptor
Thread 1422 terminated abnormally: Bad file descriptor
Thread 1426 terminated abnormally: Bad file descriptor
Thread 1460 terminated abnormally: Bad file descriptor
Thread 1453 terminated abnormally: Bad file descriptor
Thread 1455 terminated abnormally: Bad file descriptor
Thread 1457 terminated abnormally: Bad file descriptor
Thread 1463 terminated abnormally: Bad file descriptor
Thread 1461 terminated abnormally: Bad file descriptor
Thread 1459 terminated abnormally: Bad file descriptor
Thread 1464 terminated abnormally: Bad file descriptor
Thread 1466 terminated abnormally: Bad file descriptor
Thread 1468 terminated abnormally: Bad file descriptor
本文介绍了一种基于Perl的多线程客户端并发测试方法,通过创建大量子线程及对应的SOCKET连接来模拟高并发场景。每个子线程会向指定服务器发送请求消息,但在线程数量达到一定规模时出现了文件描述符错误。
1143

被折叠的 条评论
为什么被折叠?



