`
xuedong
  • 浏览: 294860 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java线程使用入门(2)

    博客分类:
  • java
阅读更多

      第二种方式是创建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线程入门

    以下是对Java线程入门的详细讲解: 1. **线程的基本概念**: - 线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。 - 在Java中,每个应用程序至少有一个主线程,它负责启动和控制其他线程。...

    java线程入门

    Java线程是多任务编程的重要概念,特别是在Java这种支持并发执行的编程语言中。线程允许程序中的不同部分并行运行,从而提高了程序的效率和响应性。在Java中,线程可以分为两种类型:用户线程(由应用程序创建)和...

    Java线程入门,学习Java线程的好帮手

    Java线程入门,学习Java线程的好帮手

    java线程入门 Java线程编程很好的入门书

    本文将基于提供的"Java线程入门"资料,深入探讨Java线程编程的基本概念、创建方法以及常见操作,帮助初学者建立起扎实的线程知识体系。 一、线程基础 1. 线程定义:线程是操作系统分配CPU时间的基本单元,一个进程...

    java线程基础入门

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

    Java线程入门

    ### Java线程入门知识点详解 #### 一、Java线程概览 - **目标读者**:本教程面向那些已经熟练掌握Java语言基本应用但对多线程编程尚不熟悉的程序员。 - **主要内容**:本教程将从零开始介绍Java线程的基础知识,...

    java线程入门,一本简绍java线程的书

    通过《Java线程入门》这本书,读者不仅可以理解Java线程的基本概念,还能学习到如何在实际项目中有效地使用线程,提升程序的并发性能。书中可能包含丰富的实例和实践练习,帮助读者巩固理论知识并提升实战技能。对于...

    java多线程入门

    Java多线程是Java编程中的核心概念...通过阅读《Java线程入门.pdf》这样的学习资料,结合实际编程实践,可以逐步掌握这门技术。在学习过程中,参考《E书说明.txt》中的指导,可以更好地利用提供的资源,加速学习进程。

    Java多线程入门介绍.pdf

    ### Java多线程入门知识点详解 #### 一、引言 多线程是现代软件开发中的重要技术之一,尤其在Java编程语言中占有极其重要的地位。对于任何一位Java程序员而言,掌握多线程的基本概念和技术是非常必要的。本文将...

    Java 多线程编程入门到精通源代码.zip

    尤其适合于没有 Java 线程开发经验的朋友。自己动手敲出本资源解压缩后的 chapter02 到 chanpter18,并运行,用心体会一下。也许在运行完 chapter18 的源码之后,你已经是一个对线程有着深刻理解的线程编程高手了! ...

    Java线程入门大全

    ### Java线程入门大全知识点详解 #### 一、线程基础概述 - **定义与特点:** - **线程**是一种比进程更细粒度的执行单元,它允许在一个进程中并发执行多个任务。 - **多线程**能够提高程序的效率和响应速度,...

    Java线程从入门到实践

    Java线程是Java编程中处理并发执行的关键概念。在Java中,线程是程序执行的最小单位,允许程序同时执行多个任务。Java的线程模型是面向对象的,这意味着线程是通过对象来创建和管理的。 1. 创建线程: Java提供了...

    最新java线程入门讲解

    本教程将深入浅出地介绍Java线程的基础知识,帮助初学者快速入门。 一、线程的创建 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写其run()方法。实例化这个子类对象后,调用start()方法即可启动...

    JAVA多线程入门教程

    本文将从进程、线程的基本概念、Java中的多线程支持以及如何创建和控制线程等方面,为你提供一个入门级别的教程。 1. 进程与线程: - **程序**是静态的代码集合,而**进程**是程序的一次动态执行过程,它是操作...

    java线程、线程池、xml解析入门

    Java线程、线程池和XML解析是Java编程中至关重要的三个概念,它们在实际开发中扮演着不可或缺的角色。下面将分别对这三个主题进行深入的介绍。 首先,我们来看Java线程。线程是程序执行的最小单位,一个进程可以...

    Java线程从入门到实践.doc

    Java线程是编程中的核心概念,尤其是在多任务处理和并发编程中。Java作为一种纯面向对象的语言,其线程模型同样基于面向对象的设计。线程允许程序在同一时间执行多个独立的任务,提高了程序的运行效率。 1. **线程...

    java线程实战手册

    《Java线程实战手册》是Java并发编程领域的一份重要参考资料,主要针对Java开发者,旨在帮助他们深入理解和熟练掌握Java中的多线程技术。虽然这里只提供了第一章的内容,但这一章通常会涵盖基础理论和核心概念,对于...

Global site tag (gtag.js) - Google Analytics