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入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...
一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...
JAVA语言的基础知识,主要讲解一些JAVA程序语言设计的基础知识,适合初学者。
不bb,java入门到高级,小白
thread线程的基本入门文档 适合入门学习 讲的比较广 深度说的不多
java se 中线程相关知识学习教程,适合线程入门,了解线程学习
java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...
java入门 java小游戏 使用Thread Jpanel Jfream 等 有些许bug未修复 推荐新手入门
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...
HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07....
Java为我们提供了线程类Thread来创建线程,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。下面是一个创建启动一个线程的语句:Thread thread1=new Thread(); file://声明一个...
HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07....
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 Socket编程经典的入门教程(包含源代码) Socket即套接字 java.net包的客户端Socket,服务端ServerSocket; 单线程套接字客户端和服务端的处理; 服务端多线程处理客户端套接字; 带有线程池处理客户端套接字;...
第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程序。 省得大家去浪费时间和精力去...接口,APPLET,CLASS ,JAVA ,THREAD(线程)引用包,数组,对象,初始化,异常,异常的处理:抛出异常、捕获异常等。 例子还有:输入输出流,构造方法。