想通过对192.168.1.*类地址的搜索,读取局域网内的计算机名。因为单个线程运行速度实在是有点慢,慢主要就慢在当gethostbyaddr函数的返回值等于NULL时,其出结果的时间非常长,导致整个程序运行速度变得很慢。
因此我就想用多线程技术,通过两个线程同时展开搜索,以加快速度。当然,前提是我现在手上有一台双核的计算机。如果没有双核的计算机,即使建立多线程也不能提高速度,我们都知道,单个CPU时,即使创建了多线程,那它也是并发的,并不是真正意义上的并行。
下面贴出源代码:
当中/**/部分是在单线程情况下的代码。
多线程的确有很多复杂的地方,为了避免因时间片时间使用完而引起的错误,采用了建立一个互斥对象的方法。但仍有许多地方不大清楚,或者说不清不楚。在编写的过程中也有许多地方是因为我没考虑周全引起的。