Dieser Artikel teilt die einfache Implementierung von Java -Multithreading- und Thread -Pool -Beispielen für Ihre Referenz. Der spezifische Inhalt ist wie folgt
1. Zwei Implementierungsmethoden des Multithreading
1. Multi-Threading-Erben Thread-Klasse
/ *** Einfache Implementierung der Multi-Threading-Vererbung der Thread-Klasse*/ public class Exthread erweitert Thread {public void run () {für (int i = 0; i <100; i ++) {System.out.Out.println (getName ()+"-"+i); }} public static void main (String arg []) {für (int i = 0; i <100; i ++) {System.out.println (Thread.CurrentThread (). getName ()+"-"+i); if (i == 50) {new Exthread (). start (); New Exthread (). start (); }}}}}2. Implementieren von Multi-Threading von Runnable-Schnittstelle
/ *** Multithreading-Instanzen, die eine rundliche Schnittstelle implementieren*/ public class RunThread implementiert Runnable {public void run () {für (int i = 0; i <100; i ++) {System.out.println (Thread.currentThread (). GetName ()+"+i); }} public static void main (String arg []) {für (int i = 0; i <100; i ++) {System.out.println (Thread.CurrentThread (). getName ()+"-"+i); if (i == 50) {RunThread rt = new RunThread (); neuer Thread (RT, "neuer Thread1"). start (); neuer Thread (RT, "neuer Thread2"). start (); }}}}2. Einfache Implementierung des Threadpools
// Implementieren Sie die Runnable Interface Class TestThread Implements Runnable {public void run () {für (int i = 0; i <100; i ++) {System.out.println (Thread.currentThread (). GetName () + "i IS:" + i); }}} public class threadpooltest {public static void main (String [] args) {// Erstellen Sie einen Thread -Pool mit einer festen Anzahl von Threads ExecutorService Pool = Executors.NewFixedThreadpool (5); // drei Threads am Thread Pool Pool einreichen. pool.submit (neuer testthread ()); pool.submit (neuer testthread ()); // Schließen Sie den Thread Pool pool.shutdown (); }}3.. Java -Crawler verwenden Thread -Pool -Instanzen
/ *** Crawler Dispatch Thread Pool*/ public class threadpool {public static hashmap <String, Spiders> statusmap = new Hashmap <String, Spiders> (); // Crawler speichern, der Schlüssel ist die ID der Crawler, der Wert ist der Threadpool von Crawler statischen Hashmap <Integer, Threadpoolexecutor> Threadmap = new Hashmap <Integer, Threadpoolexecutor> (); // Erstellen Sie einen Threadpool statische ThreadPoolexecutor Threadpool = new ThreadPoolexecutor (200, 230.80000L, TimeUnit.Seconds, New ArrayBlockingQueue <Runnable> (10), neuer ThreadPoolexecutor.Callerrunspolicy ()); public static void executThead (Spiders spider) {statusmap.put (string.ValueOf (spider.getId ()), Spider); // Der Crawler ist gültig, wenn (spider.getFlag () == 0) {if (spider.getStatus () == 0) {// Zeigt an, dass der Crawler in das Crowl -Status -Threadpoolexecutor detailpool = null eintritt; if (threadmap.get (spider.getId ()) == null) {detailpool = new threadpoolexecutor (30, 80, 80000L, TimeUnit.seconds, New ArrayBlockingQueue <Runnable> (10), New Threadpoolexecutor.Callerrunspolicy ()); threadmap.put (spider.getId (), detailpool); threadpool.execute (neuer Threadrun (Spider, ThreadMap)); }}}}} // Implementieren Sie die Runnable Interface Class -Threadrun -Implementierungen Runnable {private HashMap <Integer, ThreadPoolexecutor> ThreadPoolMap; Private Spiders Spider; public threadrun (spiders spider, Hashmap <Integer, ThreadPoolexecutor> ThreadPoolmap) {this.threadpoolmap = threadpoolmap; this.spider = spider; } // threadexecution body public void run () {try {if ("rong360" .equals (spider.getwebsite ()) {new rongThread (threadpoolmap.get (spider.getid ()), Spider) .StartSpider (); } else if ("xxgg_sd" .equals (spider.getwebsite ()))) {new Spider_Shandong (threadpoolmap.get (spider.getId ()), Spider) .StartSpider (); } else if ("xxgg_gz" .equals (spider.getwebsite ()))) {new spider_guizhou (threadpoolmap.get (spider.getId ()), Spider) .StartSpider (); } else if ("sx" .equals (spider.getWebsite ()))) {new spidersX (spider) .StartSpider (); } else if ("baidu" .equals (spider.getWebsite ()))) {new SpiderBaidu (spider) .StartSpider (); } else if ("11315" .Equals (spider.getWebsite ()))) {new spider11315BYNAME (Spider) .StartSpider (); }} catch (Ausnahme e) {e.printstacktrace (); }}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.