Java编程语言使多线程如此简单有效,以致于某些程序员说它实际上是自然的。尽管在 Java 中使用线程比在其他语言中要容易得多,仍然有一些概念需要掌握。要记住的一件重要的事情是 main() 函数也是一个线程,并可用来做有用的工作。程序员只有在需要多个线程时才需要创建新的线程。
Thread 类
Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员必须覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是必须调用 Thread 的 start() 函数,该函数再调用 run()。下面的代码说明了它的用法:
创建两个新线程
import java.util.*;
class TimePrinter extends Thread {
int pauseTime;
String name;
public TimePrinter(int x, String n) {
pauseTime = x;
name = n;
}
public void run() {
while(true) {
try {
System.out.println(name + ":" + new Date(System.currentTimeMillis()));
Thread.sleep(pauseTime);
} catch(Exception e) {
System.out.println(e);
}
}
}
static public void main(String args[]) {
TimePrinter tp1 = new TimePrinter(1000, "Fast Guy");
tp1.start();
TimePrinter tp2 = new TimePrinter(3000, "Slow Guy");
tp2.start();
}
}
在本例中,我们可以看到一个简单的程序,它按两个不同的时间间隔(1 秒和 3 秒)在屏幕上显示当前时间。这是通过创建两个新线程来完成的,包括 main() 共三个线程。但是,因为有时要作为线程运行的类可能已经是某个类层次的一部分,所以就不能再按这种机制创建线程。虽然在同一个类中可以实现任意数量的接口,但 Java 编程语言只允许一个类有一个父类。同时,某些程序员避免从 Thread 类导出,因为它强加了类层次。对于这种情况,就要 runnable 接口。
Runnable 接口
此接口只有一个函数,run(),此函数必须由实现了此接口的类实现。但是,就运行这个类而论,其语义与前一个示例稍有不同。我们可以用 runnable 接口改写前一个示例。(不同的部分用黑体表示。)
创建两个新线程而不强加类层次
import java.util.*;
class TimePrinter implements Runnable {
int pauseTime;
String name;
public TimePrinter(int x, String n) {
pauseTime = x;
name = n;
}
public void run() {
while(true) {
try {
System.out.println(name + ":" + new Date(System.currentTimeMillis()));
Thread.sleep(pauseTime);
} catch(Exception e) {
System.out.println(e);
}
}
}
static public void main(String args[]) {
Thread t1 = new Thread(new TimePrinter(1000, "Fast Guy"));
t1.start();
Thread t2 = new Thread(new TimePrinter(3000, "Slow Guy"));
t2.start();
}
}
请注意,当使用 runnable 接口时,您不能直接创建所需类的对象并运行它;必须从 Thread 类的一个实例内部运行它。许多程序员更喜欢 runnable 接口,因为从 Thread 类继承会强加类层次。
分享到:
相关推荐
综上所述,Java编程语言具有简单、稳健、面向对象、可移植以及多线程等多重特性,使其在计算机软件开发中获得了广泛的应用。随着未来技术的不断发展,Java编程语言在软件开发领域的应用前景将会更加广阔。
JAVA编程语言在软件开发中具有独特的优势,比如平台独立性、可移植性、多线程以及面向对象的特性,这些特性使得JAVA成为安全软件开发的重要工具。 1. JAVA编程语言的特点 JAVA编程语言自C++语言发展而来,它在继承...
除了上述领域,Java编程语言还被应用于计算机图像处理技术,如板形识别技术中。研究人员通过增强计算机系统捕捉物体运动图像的效率,利用高分辨率相机来提高图像质量和信息的准确率,进而在医学、工业和通信等领域...
Java线程是Java编程语言中用于实现并发处理的关键机制之一。线程是程序执行流的最小单位,它允许一个程序在同一时间执行多个任务,从而提高了程序的效率和资源利用率。在Java中,线程的创建和管理被内置到语言本身,...
本文对Java语言的多线程编程进行了详细的讲解,涵盖了Java的线程机制、线程的创建、执行、结束、优先级、状态及状态间的转换、共享访问与线程同步、wait和notify在线程间的交互、Thread类的其他重要方法等方面的内容...
Java语言的多线程编程是其强大特性之一,它使得开发者能够同时执行多个任务,提高程序的效率。本文主要探讨了两种实现线程的方式:通过继承Thread类和实现Runnable接口。 首先,Thread类是一个具体类,它封装了线程...
在当今的信息技术领域中,Java编程语言无疑占据了十分重要的位置。随着计算机的普及和多平台软件需求的增长,Java凭借其跨平台的特性、面向对象的编程范式、强大的网络功能和丰富的类库,成为了许多开发者首选的编程...
在Java编程语言中,我们可以看到两个不同的实验,分别涉及到线程和图形用户界面(GUI)的应用。下面将详细解释这两个实验及其涉及的知识点。 实验一: 这个实验展示了一个简单的Java多线程应用,用于实时显示当前...
多线程是现代编程语言中的一项重要技术,特别是在Java这样的面向对象语言中,多线程能够极大提高程序的性能和响应速度。线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 ...
学习Java编程语言需要有系统的学习计划和大量的实践经验,通过学习这些常用的Java学习资料,初学者可以更好地理解Java编程语言,提高自己的编程技能。但是,学习Java编程语言需要不斷实践和总结,初学者需要不断地...
在Java编程语言的优势分析中,重点阐述了其多线程性、动态性和安全性。多线程性让Java程序能够有效地处理并发任务,提高应用程序的效率和响应速度。动态性则是指Java程序在运行时可以动态加载类和方法,这种特性使得...
* 多线程:Java编程语言含有多线程的机制,能够让应用软件运行时可以实现并行,而且Java编程语言还有成熟化的同步原语,这在数据信息共享操作方面就很有优势,正确率大大提升。 Java编程语言在计算机应用软件开发中...
★ 第一讲 Java语言概述 ◇课前索引 ◇1.1 java语言的发展史 ◇1.2 java的工作原理 ◇1.3 一切都是对象 ◇1.4 构建java程序 ◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲...
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关...第五章 Java线程编程的例子 第六章 Java线程调度 第七章 Java线程调度例子 第八章 和同步相关的高级主题 第九章 多处理器机器上的并行化 第十章 线程组
在Java编程领域,多线程是一项重要的技术,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在“JAVA编写的多线程小弹球测试”项目中,开发者利用Java语言创建了一个生动有趣的多线程应用,即一个模拟...
Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口来实现,而 Socket 编程则...
在Java编程语言中,实现多线程文件传输是一种优化程序性能、提高系统资源利用率的有效方法。多线程允许我们同时处理多个任务,这对于大文件传输或需要并行处理的场景尤其有用。本篇文章将深入探讨如何使用Java实现多...
Java编程语言是一种广受计算机软件开发领域欢迎的编程语言,其普及和应用范围的广泛性得益于其多方面的优势。Java语言之所以能够成为计算机软件开发中不可或缺的工具,主要得益于以下几个方面的特点: 1. 平台独立...
Java多线程与线程安全编程实践-基于Http协议的断点续传.zip Java多线程与线程安全编程实践-基于Http协议的断点续传.zip Java多线程与线程安全编程实践-基于Http协议的断点续传.zip Java多线程与线程安全编程实践-...