没有合适的资源?快使用搜索试试~ 我知道了~
首页Java多线程 Java多线程
资源详情
资源评论
资源推荐

在 Java 语言产生前,传统的程序设计语言的程序同一时刻只能单任务操作,效率非常低,例如程序
往往在接收数据输入时发生阻塞,只有等到程序获得数据后才能继续运行。随着 Internet 的迅猛发展,这
种状况越来越不能让人们忍受:如果网络接收数据阻塞,后台程序就处于等待状态而不继续任何操作,而
这种阻塞是经常会碰到的,此时 CPU 资源被白白的闲置起来。如果在后台程序中能够同时处理多个任务,
该多好啊!应 Internet 技术而生的 Java 语言解决了这个问题,多线程程序是 Java 语言的一个很重要的特
点。在一个 Java 程序中,我们可以同时并行运行多个相对独立的线程,例如,我们如果创建一个线程来
进行数据输入输出,而创建另一个线程在后台进行其它的数据处理,如果输入输出线程在接收数据时阻塞,
而处理数据的线程仍然在运行。多线程程序设计大大提高了程序执行效率和处理能力。
线程的创建

我们知道 Java 是面向对象的程序语言,用 Java 进行程序设计就是设计和使用类,Java 为我们提供
了线程类 Thread 来创建线程,创建线程与创建普通的类的对象的操作是一样的,而线程就是 Thread 类或
其子类的实例对象。下面是一个创建启动一个线程的语句:
Thread thread1=new Thread(); file://声明一个对象实例,即创建一个线程;

Thread1.run(); file://用 Thread 类中的 run()方法启动线程;
从这个例子,我们可以通过 Thread()构造方法创建一个线程,并启动该线程。事实上,启动线程,也
就是启动线程的 run()方法,而 Thread 类中的 run()方法没有任何操作语句,所以这个线程没有任何操作。
要使线程实现预定功能,必须定义自己的 run()方法。Java 中通常有两种方式定义 run()方法:
通过定义一个 Thread 类的子类,在该子类中重写 run()方法。Thread 子类的实例对象就是一个线程,
显然,该线程有我们自己设计的线程体 run()方法,启动线程就启动了子类中重写的 run()方法。
通过 Runnable 接口,在该接口中定义 run()方法的接口。所谓接口跟类非常类似,主要用来实现特殊
功能,如复杂关系的多重继承功能。在此,我们定义一个实现 Runnable() 接口的类,在该类中定义自己
的 run()方法,然后以该类的实例对象为参数调用 Thread 类的构造方法来创建一个线程。
线程被实际创建后处于待命状态,激活(启动)线程就是启动线程的 run()方法,这是通过调用线程
的 start()方法来实现的。
下面一个例子实践了如何通过上述两种方法创建线程并启动它们:

// 通过 Thread 类的子类创建的线程;
class thread1 extends Thread
剩余33页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论1