Java课程考试复习--多线程,集合

 

1. @进程 :程序的一次执行 (程序代码, 程序数据,程序资源)

    @线程 :进程中程序代码的一个执行序列 (可共享访问进程中的数据和资源,操作系统按线程来调度程序的执行)

 

2.创建线程的方法

   @定义一个线程类,它继承类Thread并重写其中的方法run(),用这种方法定义的类不能再继承其他类(因为单继承)

class SimpleThread extends Thread{
   public SimpleThread(String str){
      super(str);
   }
   public void run(){
      for (int i = 0; i < 10; i++){
         System.out.println(i + " " + getName());
         try{
            sleep((int)(Math.random() * 1000));
         } catch (InterruptedException e){
      }
   }
   System.out.println("DONE! " + getName());
   }
}

   @提供一个实现接口Runnable的类作为线程的目标对象(可以再继承其他类)

public class Clock extends java.applet.Applet implements Runnable{
   Thread clockThread;
   public void start(){
      if (clockThread== null){
         clockThread= new Thread(this, "Clock");
         clockThread.start();
      }
   }
   public void run(){
      while (clockThread!= null){
         repaint();
         try{
            clockThread.sleep(1000);
         }catch (InterruptedExceptione){
         }
      }
   }
   public void paint(Graphics g){
      Date now = new Date();
      g.drawString(now.getHours() + ":" + now.getMinutes()
                  + ":" + now.getSeconds(), 5, 10);
   }
   public void stop(){
      clockThread.stop();
      clockThread= null;
   }
}

 

3.线程生命周期及控制 ,各方法的含义:start,sleep,suspend,resume,wait,notify,stop,join(等待线程执行完毕),yield等

 

4.线程优先级 :最低优先级1,最高优先级10,默认优先级5.可用getPriority( )和setPriority(int p)来获得和设置

 

5.多线程互斥: 对象互斥锁

      @用关键字volatile 来声明一个共享数据(变量)

      @用关键字synchronized 来声明一个操作共享数据的方法或一段代码

 

6.多线程同步

      @用wait()和notify()/notifyAll()方法(在java.lang.Object类中定义)来协调线程间的运行进度关系

      @notify()/notifyAll()方法和wait()方法都只能在被声明为synchronized的方法或代码段中调用

 

7.守护线程

      @为其它线程提供服务的线程,它一般应该是一个独立的线程,它的run()方法是一个无限循环

      @守护线程与其它线程的区别是,如果守护线程是唯一运行着的线程,程序会自动退出

      @setDaemon(true)使线程成为守护线程(必须在start之前调用)
         setDaemon(false)使线程成为一般线程(必须在start之前调用)

 

8.集合基本概念

      @Collection 接口是一组允许重复的对象
      @Set 接口继承Collection,但不允许重复
      @List 接口继承Collection,允许重复,并引入位置下标
      @Queue接口继承Collection,提供其他的插入、提取和检查操作
      @Map 接口既不继承Set 也不继承Collection,将键映射到值的对象

 

9.java.util.conturrent 包的了解

你可能感兴趣的:(java,多线程,thread)