3.3 Spider类及其相关类的实现 Spider(附录已给出代码)是程序的核心类之一,它将蜘蛛程序中的其他类组合在一起,在这个类中包含很多起借口作用的方法,可以通过它命令蜘蛛程序。ISpiderReportable和IWorkloadStorable是制定蜘蛛程序操作的两个接口。 3.3.1 ISpiderReportable接口 这个接口定义了蜘蛛程序检索到的网页的一个使用。任何实现此接口的对象都可以从Spider接收网页。见图3.2 3.2.2 多线程同步 当同时运行的相互独立的线程需要共享数据并且需要考虑其他线程的状态时,就需要使用一套机制使得这些线程同步,避免在争用资源时发生冲突,甚至发生死锁。Java提供了多种机制以实现线程同步。多数java 同步是以对象锁定为中心的。Java中从Object对象继承来的每个对象都有一个单独的锁。由于java中的每个对象都是从Object继承来的。所以java 中的每个对象都有自己的锁。这样使它在共享的线程之间可以相互协调。Java中实现线程同步的另一个方法是通过使用synchronized关键字。Java使用synchronized关键字来定义程序中要求线程同步的部分。synchronized关键字实现的基本操作是把每个需要线程同步的部分定义为一个临界区,在临界区中同一时刻只有一个线程被执行[8]。 4 总结 我们处在一个信息的时代,各种高新技术都在飞速地向前发展这,如何把最新的技术运用到各个领域,永远都是时代的主题。本文用java实现的多线程,Spider程序极大提高了获取,网页的效率,且具有平台无关性的特点。该程序稍加修改就可以面向专门领域的搜索, 如MP3搜索,财经数据搜索等,因此具有较高的应用价值。 |