我有一个非常简单的爬虫。我想让我当前的代码在几个线程中运行。您能为我提供一些教程或文章来帮助我完成此测试吗?
我最初是一名 .Net 开发人员,在 .Net 中,我在多线程中运行代码没有任何问题,但不幸的是我对 Java 中的线程一无所知。
我的爬虫是一个命令行软件,所以不用担心 GUI。
先感谢您。
Java通过Thread类来实现多线程。使现有代码多线程化的最常见方法之一是使用 Runnable 接口来定义要在线程启动时调用的内容,然后启动它。
public class SomeFunctions
{
public static void FunctionA() {}
public static void FunctionB() {}
public static void FunctionC() {}
}
// ...
Thread t1 = new Thread(new Runnable() {
public void run() {
SomeFunctions.FunctionA();
}
});
t1.start();
// (rinse and repeat for the other functions)
干编码,但它至少应该传达一般概念。当然,一旦进入多线程领域,就会遇到并发问题,需要确保所有内容都适当同步等,但任何语言都会遇到这些问题。
如果您担心同步问题,可以使用一些工具。最简单的是 Java 中内置的递归互斥功能,即“synchronized”关键字。还可以通过 java.util.concurrent 和 java.util.concurrent.locks 包中的各种类(例如 Semaphore 和 ReadWriteLock)获得更经典的方法
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.htmlhttp://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/package-summary.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)