我有一个非常简单的爬虫。我想让我当前的代码在几个线程中运行。你能给我一些教程或文章来帮助我完成这个测试吗?
我最初是一名 .Net 开发人员,在 .Net 中,我在多线程中运行代码没有任何问题,但不幸的是,我对 Java 中的线程一无所知。
我的爬虫是一个命令行软件,所以不用担心 GUI。
提前谢谢你。
最佳答案
Java 通过Thread 类来实现多线程。使现有代码成为多线程的最常见方法之一是使用 Runnable 接口(interface)定义您希望在线程启动时调用的内容,然后启动它。
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.html http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/package-summary.html
关于java - 在 Java 并行/多线程中创建现有代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005137/