`

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基础入门到精通pdf

    10. **多线程**:Java内置对多线程的支持,通过Thread类或Runnable接口实现并发执行。同步机制如synchronized关键字、wait/notify机制防止并发问题。 11. **网络编程**:Java提供了丰富的网络编程API,如Socket和...

    java基础课件 java入门课件

    这份"java基础课件"是专为初学者设计的,旨在帮助那些对Java编程不太熟悉的人快速入门并掌握基本概念。 首先,Java的基础知识包括语法结构。在Java中,程序由类(class)组成,类是具有特定属性和行为的对象模板。...

    java入门基础课件

    本套"java入门基础课件"旨在为初学者提供全面的Java学习资源,帮助他们掌握编程的基本概念,深入理解Java的核心特性。 首先,我们从基础语法开始。Java的基本语法结构类似于C++和C#,但更加强调类型安全。学习Java...

    详细java入门PPT教程

    这份"详细java入门PPT教程"是为初学者精心设计的,旨在帮助新接触Java编程的人快速上手,理解其基本概念和语法,从而轻松步入编程世界。 一、Java语言概述 Java是由Sun Microsystems(现已被Oracle公司收购)于1995...

    java入门学习源码

    "java入门学习源码"这个主题对于初学者来说是极为重要的,因为它提供了实践和理解Java编程概念的实操机会。下面将详细介绍Java学习中的关键知识点,以及如何通过源码来深入理解和掌握它们。 1. **基础语法**:Java...

    java入门课件(java初学者必备)

    以上只是Java入门的一些核心知识点,实际学习过程中,还会涉及到更多的高级主题,如反射、注解、设计模式、并发编程、JVM内存管理等。这个入门课件将逐步引导初学者掌握这些基础知识,为后续深入学习Java打下坚实的...

    Java入门级教程

    Java入门级教程是一个针对初学者精心设计的在线学习资源,旨在帮助那些对编程感兴趣的人们快速掌握Java语言的基础知识。这个教程以Web格式呈现,使得学习过程更加方便、直观,适合在各种设备上进行学习。 Java是一...

    Java 入门 基础 代码

    14. **多线程**:Java支持多线程编程,理解Thread类和Runnable接口,以及同步机制如synchronized关键字和wait()、notify()方法。 15. **枚举与注解**:枚举用于定义固定的常量集合,注解提供元数据,对代码进行标记...

    java学习从入门到精通教程(pdf)

    9. **多线程**:Java支持多线程编程,讲解Thread类、Runnable接口以及线程同步机制,如synchronized关键字和wait/notify机制。 10. **异常处理**:了解Java的异常处理机制,包括try-catch-finally语句块和自定义...

    java入门级pdf

    Java入门级PDF文档通常会涵盖一系列基础概念,帮助初学者建立起对这门语言的理解。以下是一些关键知识点的详细介绍: 1. **Java简介**:Java是由Sun Microsystems(现已被Oracle收购)开发的一种高级编程语言,它...

    最好的java入门基础书

    "最好的Java入门基础书"无疑为新手提供了宝贵的资源,帮助他们构建坚实的编程基础。这本书可能包含了Java语言的基本概念、语法、数据类型、控制结构、类与对象等核心主题。 1. **Java语言简介**:Java是一种跨平台...

    Java入门练习50题

    "Java入门练习50题"旨在帮助新手巩固基础,通过实践加深理解。以下将对这些练习进行详细解释,以期为你的Java学习之旅提供有力的支持。 1. **基础语法** - 变量声明:了解如何声明并初始化各种类型的变量,包括...

    java 入门入门入门入门入门入门入门入门

    "Java 入门入门入门入门入门入门入门入门"这个标题暗示了我们将要探讨的是针对初学者的基础知识,包括如何开始学习Java,理解其基本概念,以及如何编写简单的程序。 Java的基础知识点主要包括以下几个部分: 1. **...

    Java基础入门.rar

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。"Java基础入门"这个压缩包提供了学习Java编程的基础资源,包括经典的入门书籍源码和JDK11的中文版API文档。 首先,让我们来了解...

    JAVA入门教程TXT

    在“JAVA入门教程TXT”中,你将学习到以下基础知识: 1. **Java环境搭建**:首先,你需要安装Java Development Kit (JDK)。JDK包含了编译Java源代码所需的Java编译器(javac)、运行Java程序的Java虚拟机(JVM)...

    Java入门实验实例(程序代码加实验报告全)

    "Java入门实验实例(程序代码加实验报告全)"是一份非常实用的学习资源,旨在帮助初学者快速掌握Java编程基础。这份资料包含了作者在学习Java过程中编写的全部程序和对应的实验报告,对于刚接触Java的人来说,是非常...

    JAVA入门 日文版

    ### JAVA入门日文版知识点详解 #### 1. クラス(Class) - **クラスの定義**: クラスはオブジェクトの設計図であり、その設計図に基づいてインスタンス(オブジェクト)が生成されます。つまり、クラスはオブジェク...

    Java基础入门教程

    Java基础入门教程是一份非常适合初学者的教育资源,它引导学习者逐步掌握Java编程语言的核心概念。这份教程可能包含了以下几个关键的知识点: 1. **认识Java**:这部分通常会介绍Java的历史,由Sun Microsystems...

    java入门使用课件,可自学,可用于教学

    Java入门使用课件可自学可用于教学 本资源是一个Java入门使用课件,旨在帮助学习者快速掌握Java的基本语法和开发环境配置。该课件包含了Java的基础知识点,包括开发环境配置、变量、流程控制、面向对象编程、数组和...

Global site tag (gtag.js) - Google Analytics