一.理论知识部分

1.程序是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝本。

2.进程是程序的一次动态执行,它对应了从代码加载、执行至执行完毕的一个完整过程。

3.多线程是进程执行过中产生的多条线索。

4.线程是比进程执行更小的单位。

5.线程不能独立存在,必须存在于进程中,同一进 程的各线程间共享进程空间的数据。

6.多线程意味着一个程序的多行语句可以看上去几 乎在同一时间内同时运行。

7.用Thread类的子类创建线程:首先需从Thread类派生出一个子类,在该子类中 重写run()方法。然后用创建该子类的对象。 最后用start()方法启动线程。

8.用Runnable()接口实现线程:首先设计一个实现Runnable接口的类; 然后在类中根据需要重写run方法; 再创建该类对象,以此对象为参数建立Thread 类的对象;  调用Thread类对象的start方法启动线程,将 CPU执行权转交到run方法。

9.线程的终止:当线程的run方法执行方法体中最后一条语句后, 或者出现了在run方法中没有捕获的异常时,线 程将终止,让出CPU使用权。调用interrupt()方法也可终止线程。

10.线程的状态:利用各线程的状态变换,可以控制各个线程轮流 使用CPU,体现多线程的并行性特征。线程有如下7种状态: New (新建) 、Runnable (可运行) 、Running(运行) 、Blocked (被阻塞) 、Waiting (等待) 、Timed waiting (计时等待) 、Terminated (被终止)

11.调用setPriority(int a)重置当前线程的优先级, a 取值可以是前述的三个静态量。

     调用getPriority()获得当前线程优先级。

12.多线程并发执行中的问题:
多个线程相对执行的顺序是不确定的。线程执行顺序的不确定性会产生执行结果的不确定性。 在多线程对共享数据操作时常常会产生这种不确定性。

二.实验部分

1、实验目的与要求

(1) 掌握线程概念;

(2) 掌握线程创建的两种技术;

(3) 理解和掌握线程的优先级属性及调度方法;

(4) 掌握线程同步的概念及实现技术;

2、实验内容和步骤

实验1:测试程序并进行代码注释。

测试程序1:

l 在elipse IDE中调试运行ThreadTest,结合程序运行结果理解程序;

l 掌握线程概念;

l 掌握用Thread的扩展类实现线程的方法;

l 利用Runnable接口改造程序,掌握用Runnable接口创建线程的方法。

Thread扩展类:

 1 class Lefthand extends Thread { 
 2    public void run()
 3    {
 4        for(int i=0;i<=5;i++)
 5        {  System.out.println("You are Students!");
 6            try{   sleep(500);   }
 7            catch(InterruptedException e)
 8            { System.out.println("Lefthand error.");}    
 9        } 
10   } 
11 }
12 class Righthand extends Thread {
13     public void run()
14     {
15          for(int i=0;i<=5;i++)
16          {   System.out.println("I am a Teacher!");
17              try{  sleep(300);  }
18              catch(InterruptedException e)
19              { System.out.println("Righthand error.");}
20          }
21     }
22 }
23 public class ThreadTest 
24 {
25      static Lefthand left;
26      static Righthand right;
27      public static void main(String[] args)
28      {     left=new Lefthand();
29            right=new Righthand();
30            left.start();
31            right.start();
32      }
33 }
ThreadTest

相关文章:

  • 2021-10-23
  • 2021-05-23
  • 2022-01-30
  • 2021-08-15
  • 2022-01-11
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-29
  • 2021-11-22
  • 2022-01-22
  • 2022-01-10
  • 2021-10-31
  • 2021-09-04
  • 2021-11-25
相关资源
相似解决方案