Make an existing code in Java parallel/multithread

后端 未结 3 2006
孤城傲影
孤城傲影 2021-01-05 03:37

I have a very simple crawler. I want to make my current code run in a few threads. Could you provide me a little tutorial or article to help me achive this test?

I\'

3条回答
  •  礼貌的吻别
    2021-01-05 03:53

    Java does multithreading through the Thread class. One of the most common ways to make existing code multithreaded is to use the Runnable interface to define what you want to call at thread start, and then start it off.

    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)
    

    Dry coded, but it should at least get the general concept across. Of course, as soon as you go into multithreading land, you have concurrency issues and need to make sure everything is appropriately syhchronized, etc., but any language will have those issues.

    If you're worried about synchronization, you have a few tools at your disposal. The easiest is the recursive mutex functionality built into Java, the "synchronized" keyword. More classical means are also available through various classes in the java.util.concurrent and java.util.concurrent.locks packages such as Semaphore and 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

提交回复
热议问题