第二种方式是创建Thread类的子类并在子类中实现run方法,或在实现runnable的类中实现run方法,并将这个实现传递给Thread的构造函数。
你可能会问有什么区别。Java编程语言仅支持单一继承。如果你设计的调用是除了Thread以外的其它类,你可以是你的类实现Runnable,而它可以是你的作业被执行。否则,你定义Thread的子类来运行你的Run方法,在处理过程中不再添加其它操作。
对于创建Thread子类的第三种情况,下面的程序生成了一个新的线程来计算一个特定URL的字符数,这个URL是通过命令行传递进来的。在这进行过程之中,实现Runnable的第四种情况被演示,打印出重复的消息。注意在实现Runnable的这后一种情况下,你必须提供重复消息的代码。你必须同时sleep,以分配时间并完成操作。在两种情况下,与使用Timer相比较。这段程序的最后一部分包含有你从命令行读取命令以触发程序结束。注意在系统读取URL并打印消息的同时,你总可以按Enter键结束程序。
import java.io.*;
import java.net.*;
public class Both {
public static void main(String args[]) {
final String urlString = args[0];
final String message = args[1];
Thread thread1 = new Thread() {
public void run() {
try {
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
InputStreamReader isr = new InputStreamReader(connection
.getInputStream());
BufferedReader reader = new BufferedReader(isr);
int count = 0;
while (reader.read() != -1) {
count++;
}
System.out.println("Size is : " + count);
reader.close();
} catch (MalformedURLException e) {
System.err.println("Bad URL: " + urlString);
} catch (IOException e) {
System.err.println("I/O Problems");
}
}
};
thread1.start();
Runnable runnable = new Runnable() {
public void run() {
while (true) {
System.out.println(message);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
}
}
};
Thread thread2 = new Thread(runnable);
thread2.start();
try {
System.out.println("Press ENTER to stop");
System.in.read(new byte[10]);
} catch (IOException e) {
System.out.println("I/O problems");
}
System.exit(0);
}
}
为有多种方式来处理线程,你选用哪种技术取决于你和你面临的条件。要成为一个有效的Java编程人员,尽管你通常不必学习Java编程语言的所有内容和核心库,但是线程是一个例外。你越早了解线程如何工作和如何使用线程,你将越早了解Java程序如何工作和交互。
转自:http://developer.51cto.com/art/200906/130602_1.htm
分享到:
相关推荐
### Java线程入门知识点详解 #### 一、Java线程基础知识概述 **1.1 什么是线程?** 线程是程序执行流的最小单元,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在Java中...
以下是对Java线程入门的详细讲解: 1. **线程的基本概念**: - 线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。 - 在Java中,每个应用程序至少有一个主线程,它负责启动和控制其他线程。...
Java线程是多任务编程的重要概念,特别是在Java这种支持并发执行的编程语言中。线程允许程序中的不同部分并行运行,从而提高了程序的效率和响应性。在Java中,线程可以分为两种类型:用户线程(由应用程序创建)和...
Java线程入门,学习Java线程的好帮手
本文将基于提供的"Java线程入门"资料,深入探讨Java线程编程的基本概念、创建方法以及常见操作,帮助初学者建立起扎实的线程知识体系。 一、线程基础 1. 线程定义:线程是操作系统分配CPU时间的基本单元,一个进程...
java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...
### Java线程入门知识点详解 #### 一、Java线程概览 - **目标读者**:本教程面向那些已经熟练掌握Java语言基本应用但对多线程编程尚不熟悉的程序员。 - **主要内容**:本教程将从零开始介绍Java线程的基础知识,...
通过《Java线程入门》这本书,读者不仅可以理解Java线程的基本概念,还能学习到如何在实际项目中有效地使用线程,提升程序的并发性能。书中可能包含丰富的实例和实践练习,帮助读者巩固理论知识并提升实战技能。对于...
Java多线程是Java编程中的核心概念...通过阅读《Java线程入门.pdf》这样的学习资料,结合实际编程实践,可以逐步掌握这门技术。在学习过程中,参考《E书说明.txt》中的指导,可以更好地利用提供的资源,加速学习进程。
### Java多线程入门知识点详解 #### 一、引言 多线程是现代软件开发中的重要技术之一,尤其在Java编程语言中占有极其重要的地位。对于任何一位Java程序员而言,掌握多线程的基本概念和技术是非常必要的。本文将...
尤其适合于没有 Java 线程开发经验的朋友。自己动手敲出本资源解压缩后的 chapter02 到 chanpter18,并运行,用心体会一下。也许在运行完 chapter18 的源码之后,你已经是一个对线程有着深刻理解的线程编程高手了! ...
### Java线程入门大全知识点详解 #### 一、线程基础概述 - **定义与特点:** - **线程**是一种比进程更细粒度的执行单元,它允许在一个进程中并发执行多个任务。 - **多线程**能够提高程序的效率和响应速度,...
Java线程是Java编程中处理并发执行的关键概念。在Java中,线程是程序执行的最小单位,允许程序同时执行多个任务。Java的线程模型是面向对象的,这意味着线程是通过对象来创建和管理的。 1. 创建线程: Java提供了...
本教程将深入浅出地介绍Java线程的基础知识,帮助初学者快速入门。 一、线程的创建 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写其run()方法。实例化这个子类对象后,调用start()方法即可启动...
本文将从进程、线程的基本概念、Java中的多线程支持以及如何创建和控制线程等方面,为你提供一个入门级别的教程。 1. 进程与线程: - **程序**是静态的代码集合,而**进程**是程序的一次动态执行过程,它是操作...
Java线程、线程池和XML解析是Java编程中至关重要的三个概念,它们在实际开发中扮演着不可或缺的角色。下面将分别对这三个主题进行深入的介绍。 首先,我们来看Java线程。线程是程序执行的最小单位,一个进程可以...
Java线程是编程中的核心概念,尤其是在多任务处理和并发编程中。Java作为一种纯面向对象的语言,其线程模型同样基于面向对象的设计。线程允许程序在同一时间执行多个独立的任务,提高了程序的运行效率。 1. **线程...
《Java线程实战手册》是Java并发编程领域的一份重要参考资料,主要针对Java开发者,旨在帮助他们深入理解和熟练掌握Java中的多线程技术。虽然这里只提供了第一章的内容,但这一章通常会涵盖基础理论和核心概念,对于...