for循环改为多线程方式进行执行

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class MySearchTest2 {
	private final static Executor executor = Executors.newCachedThreadPool();// 启用多线程
	private static String mainUrl = "http://ac.qq.com/Comic/index/state/pink/page/";// 可以根据腾讯漫画的分类来进行抓取
	private static String url = "http://ac.qq.com/Jump";// +/Comic/comicInfo/id/11111
														// 可以获取具体的漫画页面

	public static void main(String[] args) {
		for (int i = 0; i < 144; i++) {
			final int j = i;
			executor.execute(new Runnable() {
				@Override
				public void run() {
					try {
						System.out.println("begin*************第" + j + "页");
						getArticleListFromUrl(mainUrl + j);
						System.out.println("end*************第" + j + "页");
					} catch (Exception e) {

					}
				}
			});

		}
	}
}

  

时间: 2024-11-07 10:16:52

for循环改为多线程方式进行执行的相关文章

python多线程实现同时执行两个while循环

如果想同时执行两个while True循环,可以使用多线程threading来实现. 完整代码 #coding=gbk from time import sleep, ctime import threading def muisc(func): while True: print 'Start playing: %s! %s' %(func,ctime()) sleep(2) def move(func): while True: print 'Start playing: %s! %s' %

ConcurrentModificationException异常总结-多线程方式

1.多线程方式发生异常举例 1.1.java代码如下: final List<String> myList = createTestData(); new Thread(new Runnable() { @Override public void run() { for (String string : myList) { System.out.println("遍历集合 value = " + string); try { Thread.sleep(100); } cat

Spark(六)Spark任务提交方式和执行流程

一.Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext.由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等.程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运行某些task,并且负责将数据存在内存或者磁盘上.在Spark on Yarn模式下,其进程名称为 Coar

四种多线程方式

Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,后两种是带返回值的. 方式一:继承Thread类 重写run()方法,调用start()方法执行. 需要注意的是:为什么多线程的启动不是调用run()方法,而是调用start()方法? 在Java开发中有一门J

Qt多线程——方式2

QT多线程方式二: 1)设定一个类,继承于QObject 2)类中设置一个线程函数(只有一个是线程函数),内部使用一个while循环 3)创建线程对象,不能指定父对象 4)创建QThread子线程对象 5)自定义线程类加入子线程 a) thread—>start() 只是开启了线程,并没有启动线程处理函数 b)线程函数的启动,必须要通过signal——slot //线程函数类   mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H #include

多线程的并发执行应用(生产者消费者模式)

在实际的开发中我们为了提高CPU的利用率,也提高程序的执行效率,我们经常使用多线程进行对数据进行并发处理,下面我举一个多线程并发执行的实例,大致意思就是 一个简单的生产者消费者模式,二个线程进行存数据,一个线程进行取数据. import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; public class BlockingQueueTest { /** * @param a

易飞报表数据库PostgreSQL改成MSSQL方式

简述步骤 1.在mssql上新增一个数据库,设定如下,编码要选择"chinese_PRC_CI_AL_KS_WS" 2.用sql命令.在report中新增一个View 3.BDE设定.leadertemp50 和 leader一样的设定,但DATABASENAME = report 4.condctors.ini改成报表数据库DBE 相信操作步骤见文档: 主站下载: http://www.qywalk.com/  博客:http://blog.sina.com.cn/qianyuman

以脚本方式直接执行修改密码的passwd命令

以脚本方式直接执行修改密码的passwd命令: 参考: http://bbs.csdn.net/topics/390001865 http://bbs.chinaunix.net/thread-993455-1-1.html 结论: echo “123456″ | passwd --stdin root

jQuery使用数据绑定的方式来执行元素的动画【原】

网页排版中如果有大量的元素动画并且使用jquery的animate来生成,写出来的js代码又多又乱:换一种方式:把动画的属性绑定到动画元素上,再写一个通用的方法去读取这些属性然后自动的生成对应的动画:或许这样可以省点力气,看起来也更加直观. <!DOCTYPE html> <html> <head> <title>使用数据绑定的方式来执行元素的动画</title> <meta charset="utf-8"> &l