下载此文档

Java程序设计 第07章 多线程程序设计.ppt


文档分类:IT计算机 | 页数:约40页 举报非法文档有奖
1/40
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/40 下载此文档
文档列表 文档介绍
第7章
多线程程序设计
线程的基本概念
进程是程序的一次动态执行过程,它对应了从程序代码加载、执行到执行结束的一个完整的过程,也就是进程产生、发展至消亡的过程。每个进程都有自己独立的地址空间和一组系统资源。线程是一个比进程更小的执行单位,是一段完成某个特定功能的代码,是进程中的一个单个的控制流,一个进程在其执行过程中可以包含多个线程。
与进程不同的是,同类线程将共享进程的地址空间及操作系统分配给这个进程的资源,线程本身的数据通常只是寄存器中的数据以及供程序使用的堆栈等。因此,在同一个进程的线程之间进行切换时,其开销要比进程之间切换小得多。正因为如此,线程又被称作轻量级进程(light-weight process)。
通过多线程程序设计,就可以将程序任务划分成几个并行执行的子任务,从而提高整个程序的执行效率和系统资源的利用率。
例如,可以编写一个包括两个线程的Java程序,其中一个线程用来完成数据输入输出功能,而另一个线程在后台对这些数据进行处理。如果输入输出线程在接收数据时阻塞,但处理数据的线程仍然可以运行,仍可以保证较高的程序执行效率。
线程的创建
Java中提供了2种创建线程的方法:
(1)继承Thread类
(2)利用Runnable接口
方法之一:继承Thread类
通过继承Thread类创建线程类时,首先应将它定义为Thread类的子类,然后在Thread类中自带的run() 成员方法中定义该线程执行的程序代码,该类就可以表示一个线程类了。创建这个类的实例就可以创建一个线程。,其中封装了创建和控制线程操作的所有成员方法。
例如:
public class MyThread extends Thread //定义Thread类的子类MyThread,作为线程类。
{
public void run() //定义线程的run()方法
{
("MyThread is running...");
//定义线程的操作
}
}
// file name:
class ThreadTest_1 extends Thread {
public void run() {
for (char s = 'A'; s < 'F'; s++) {
("正在运行线程" + getName() + " 打印字符为" + s);
}
();
("线程" + ().getName() + " 执行结束, 退出");
}
}
public class MultiThreadTest_1 {
public static void main(String args[]) {
Thread t1 = new ThreadTest_1();
("T1");
Thread t2 = new ThreadTest_1();
("T2");
();
();
("主线程" + ().getName() + " 创建两个子线程完毕,退出");
}
}
通过继承Thread类创建线程的几个步骤:
定义一个Thread类的子类:public class MyThread_1 extends Thread
覆盖run()方法,提供线程执行的入口点:public void run() { …}
创建该线程的一个实例:Thread t1 = new MyThread_1();
启动线程,调用实例的start()方法:()。
继承Thread类创建线程的步骤
创建线程的方法之二: 实现Runnable接口
因为Java语言仅支持单继承,因此当定义的线程类需要继承多个类时用上述方法就无法实现。这时,就需要采用Java语言提供的另一种定义线程的途径—实现Runnable接口。它是在构造线程过程中可能出现的多重继承问题的一种解决方案。

Java程序设计 第07章 多线程程序设计 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数40
  • 收藏数0 收藏
  • 顶次数0
  • 上传人策划大师
  • 文件大小0 KB
  • 时间2011-11-13