`

Java入门使用Thread入门

阅读更多

Java中的线程实现是通过继承java.lang.Thread类然后实现run方法;或者通过实现Runnable接口,实现run方法,然后在实例化Thread时传入此Runnable实例作为参数。

 

如下代码片段 DownloadThread从Thread继承实现run方法下载一个Url:

package hello;

import java.io.IOException;
import org.apache.http.client.*;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;

/**
 * DownloadThread 从Thread继承,实现run方法
 * @author yukaizhao
 *
 */
public class DownloadThread extends Thread {
	
	@Override
	public void run(){
		HttpClient client = new DefaultHttpClient();
		HttpGet httpGet = new HttpGet("http://yukaizhao.javaeye.com/");
		try {
            // Create a response handler
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
			String responseBody = client.execute(httpGet,responseHandler);
			System.out.println(responseBody);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

如下代码片段,实现Runnable,休眠随机毫秒数,然后输出一行文本

package hello;

import java.util.Random;

/**
 * 实现Runnable,实现run方法
 * @author yukaizhao
 *
 */
public class RunnableImpl implements Runnable {
	static int _number = 0;
	public void run(){
		Random random = new Random();
		int sleepMm=random.nextInt(200);
		try {
			Thread.sleep(sleepMm);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(String.format("I'm %1d thread",++_number));
	}
}

 

如下代码,在main函数中调用线程实现:

package hello;

public class HelloThread {
	public static void main(String[] args) throws InterruptedException{
		//声明Thread变量
		DownloadThread thread = new DownloadThread();
		//调用run执行方法
		thread.run();
		//join等待thread执行完毕的信号
		thread.join();
		
		//声明Runnable
		Runnable[] impls = new Runnable[5];
		//声明Runnable数量相同的线程
		Thread[] threads = new Thread[impls.length];
		for(int i=0;i<impls.length;i++){
			impls[i] = new RunnableImpl();
			//将Runnable的实例作为参数传递给Thread的构造函数
			threads[i] = new Thread(impls[i]);
			//启动线程
			threads[i].start();
		}
	}
}
 
分享到:
评论

相关推荐

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    JAVA基础知识入门

    JAVA语言的基础知识,主要讲解一些JAVA程序语言设计的基础知识,适合初学者。

    JAVA入门神器.pdf

    不bb,java入门到高级,小白

    thread线程的基本入门文档

    thread线程的基本入门文档 适合入门学习 讲的比较广 深度说的不多

    java thread

    java se 中线程相关知识学习教程,适合线程入门,了解线程学习

    java线程基础入门

    java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...

    java 坦克大战

    java入门 java小游戏 使用Thread Jpanel Jfream 等 有些许bug未修复 推荐新手入门

    Java2游戏编程.pdf

    4.1.8 java.lang.Thread 4.2 java.io包 4.3 java.util包 4.3.1 java.util.StringTokenizer 4.3.2 java.util.Random 4.3.3 Java2集合框架 4.4 总结 4.5 练习 第2篇 Java 2-D图像开发和抽象Window工具包 第5章 Applet...

    java高手真经 光盘源码

    HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07....

    Java多线程程序设计入门

    Java为我们提供了线程类Thread来创建线程,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。下面是一个创建启动一个线程的语句:Thread thread1=new Thread(); file://声明一个...

    Java高手真经(编程基础卷)光盘全部源码 免积分

    HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07....

    Java高手真经(编程基础卷)光盘全部源码

    HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07.Java...

    java 基础代码知识,很好的入门学习资料

    一个用于java 基础知识学些的资料,能够掌握一些基础的java知识,适合于初级java程序员。

    Java Socket 套接字编程经典入门

    Java Socket编程经典的入门教程(包含源代码) Socket即套接字 java.net包的客户端Socket,服务端ServerSocket; 单线程套接字客户端和服务端的处理; 服务端多线程处理客户端套接字; 带有线程池处理客户端套接字;...

    Java2实用教程.rar

    第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符 关键字和数据类型 2...

    四川大学java课件

    java 入门不错的!!!!!! 为了积点分!快没分! 顶一下

    JAVA程序(初学者的好范本,入门者的参考学习,偷懒者的好资源。)

    从其他地方下载来的JAVA程序。 省得大家去浪费时间和精力去...接口,APPLET,CLASS ,JAVA ,THREAD(线程)引用包,数组,对象,初始化,异常,异常的处理:抛出异常、捕获异常等。 例子还有:输入输出流,构造方法。

Global site tag (gtag.js) - Google Analytics