6Java网络编程实验-多线程.pdfVIP

  • 0
  • 0
  • 约6.52千字
  • 约 4页
  • 2026-02-13 发布于河北
  • 举报

Java网络编程实验报告

实(验六)

学号:姓名:

审验项目名称:多线程教师评分:

一、实验目的

(1)了解线程的念。

2)学习简单的多线程编程。

二、预习内容及要求(要求写出预习内容)

1.进程和线程的念

进程是程序一次动态执行的过程,对应从代码加载、执行到执行结束这样一个完整的过程,也是

进程自身从产生、发展到消亡的过程。

线程是比进程更小的执行单元:一个进程在执行过程中,可以产生多个线程。每个线程都有自身

的产生、执行和消亡的过程。

2.线程的状态与生命周期

・新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此

时它已经有了相应的内存空间和其他资源。

•运行:线程创建之后就具备了运行的条件,一旦轮到它来享用CPU资源时,即JVM将CPU

使用权切换给该线程时,比线程的就可以脱离创建它的主线程独立开始自己的生命周期了即(

run方法执行的过程)。

•中断:有4种原因的中断,CPU资源从当前线程切换给其他线程、执行了sleep(intmillsecond)

方法、执行了wail()方法、进入阻塞状态。

•死亡:run方法结束。

3.线程的创建

在Java语言中,与线程支持密切相关的是java.lan.Thread类和java.lan.Runnable接口。Runnable

接口定义很简单,只有一个run方法。任何一个类如果希望自己的实例能够以线程的形式执行,都可以

来实现Runnable接口。

继承Thread类和实现Runnable接口,都可以用来创建Thread对象,效果上并没有什么不同。维

承Thread类的方法很明显的缺点就是这个类不能再继承其他的类了,而实现Runnable接口不会有这个

麻烦。

另外,在继承Thread类的代码中,lhis其实就是指当前正在运行的线程对象,如果使用实现Runnable

接口的方式,要得到当前正在执行的线程,需要使用Thread.currentThread。方法。

线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有这个线程,此线程必须调用start

()方法(从父类继承的方法)通知JVM,这样JVM就会知道又有一个新一个线程排队等候切换了。

注意:多次启动一个线程,或者启动一个己经运行的线程对象是非法的,会抛出

IllealThrcadStatcExccption异常对象。

4.线程的优先级

同一时刻在等待队列中的线程会有很多个,它们各自任务的重要性有所不同。为了加以区分,使

工作安排和资源分配时间更为合理,每个线程可以被赋予不同的优先级,让任务较急的线程拥有更

高的优先级,从而更快地进入执行状态。

Java中提供了10个等级的线程优先级,最低为Thread.MIN_PRIORITY=l,最高为

Thread.MAX_PRIORITY=10,默认优先级为Thread.NORM_PRIORITY=5。

使用Thread类中的setPrioriiy(int)方法可以为线程指定优先级。

5.线程的常用方法

•start()方法:

线程调用该方法将启动线程,便之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,

就可以脱离创建它的线程独立开始自己的生命周期了。

•run()方法:

Thread类的ru

文档评论(0)

1亿VIP精品文档

相关文档