Эта статья разделяет простую реализацию примеров многопоточной чтения Java и пула потоков для вашей ссылки. Конкретный контент заключается в следующем
1. Два метода реализации многопоточного чтения
1. Многопользовательский унаследованный класс потоков.
/ *** Простая реализация многопоточного наследования потока класса*/ public class extthread extends {public void run () {for (int i = 0; i <100; i ++) {System.out.println (getName ()+"-"+i); }} public static void main (string arg []) {for (int i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName ()+"-"+i); if (i == 50) {new extthread (). start (); Новый TextRead (). start (); }}}}}2. Реализация многопоточного заполненного интерфейса
/ *** Многопользовательские экземпляры, которые реализуют выполняемый интерфейс*/ public class runthread реализуют runnable {public void run () {for (int i = 0; i <100; i ++) {System.out.println (thread.currentThread (). GetName ()+"-"+i); }} public static void main (string arg []) {for (int i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName ()+"-"+i); if (i == 50) {runthread rt = new runthread (); Новый поток (RT, "New Thread1"). start (); Новый поток (RT, "New Thread2"). start (); }}}}2. Простая реализация пула потоков
// реализовать runnable interface class class testthread реализует runnable {public void run () {for (int i = 0; i <100; i ++) {System.out.println (thread.currentThread (). GetName () + "i is:" + i); }}} public class threadpooltest {public static void main (string [] args) {// Создать пул потоков с фиксированным количеством потоков executorservice pool = experators.newfixedthreadpool (5); // отправить три потока в пул пула потоков. Submit (new TestThread ()); pool.submit (new TestThread ()); pool.submit (new TestThread ()); // закройте пул пула потоков.shutdown (); }}3. Java Crawlers используют экземпляры бассейна.
/ *** Пул потоков для диспетчеры CRAWLER*/ public Class ThreadPool {public Static Hashmap <String, Spaiders> StatusMap = new HashMap <String, Spiuders> (); // хранить сканеры, ключ - это идентификатор сканеров, значение - это пул потоков статического хэшмапа <Integer, threadpoolexecutor> threadmap = new Hashmap <Integer, ThreadPoolexeCutor> (); // Создать статический пул потоков ThreadPoolexeCutor ThreadPool = new ThreadPoolexeCutor (200, 230,80000L, TimeUnit.seconds, New ArrayBlockqueue <Runnable> (10), New Threatpoolexecutor.callerrunspolicy ()); public static void executeThread (spiders spider) {statusmap.put (string.valueof (spider.getid ()), spider); // Crawler действителен if (spider.getflag () == 0) {if (spider.getStatus () == 0) {// Указывает, что Crawler входит в состояние ползания ThreadPoolexeCutor DetailPool = null; if (threadmap.get (spider.getid ()) == null) {detailpool = new ThreadPoolexeCutor (30, 80, 80000L, TimeUnit.seconds, New ArrayBlockqueue <Runnable> (10), New ThreadPoolexeCutor.callerrunSpolicy ()); threadmap.put (spider.getid (), detailpool); threadpool.execute (new Threadrun (Spider, Threadmap)); }}}}} // Реализация реализаций класса runnable interface class runnable {private hashmap <Integer, threadpoolexecutor> threadpoolmap; Частный паук пауков; 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 spuder_shandong (threadpoolmap.get (spider.getid ()), spider) .startspider (); } else if ("xxgg_gz" .equals (spider.getwebsite ()))) {new spuder_guizhou (threadpoolmap.get (spider.getid ()), spider) .startspider (); } else if ("sx" .equals (spider.getwebsite ()))) {new spuderx (spider) .startspider (); } else if ("baidu" .equals (spider.getwebsite ()))) {new spiderbaidu (spider) .startspider (); } else if ("11315" .equals (spider.getWebsite ()))) {new Spider11315byName (spider) .startSpider (); }} catch (Exception e) {e.printstackTrace (); }}}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.