首页 > 代码库 > 第13章 线程

第13章 线程

第13章 线程
线程具有提高执行速度的特点。

本章重点:
----------------------------------
线程的基本概念
创建并使用线程
线程的让步、同步等操作

进程就是一个执行中的程序,每一个进程都有其独立的内存空间和系统资源。
进程就是一个运行的程序,Windows操作系统是支持多进程的操作系统,即同一时间可以执行多个程序,每个程序是在自己独立的内存空间内,使用自己被分配到的系统资源。
线程是CPU调度和分派的基本单位,一个进程可以由多个线程组成,而这多个线程共享同一个存储空间,这使得线程间的通信比较容易。
在一个多进程的程序中,如果要切换到另一个进程,需要改变地址空间的位置。然而在多线程的程序中,就不会出现这种情况,因为它们位于同一个内存空间内,只需改变运行的顺序即可。

在Java程序语言中,可通过系统提供的编程接口去创建线程。
创建线程的方法有两种:
1、通过实现Runnable接口的方式来创建线程。
2、另一种是通过继承Thread类来创建线程。
在Java中,线程是一种对象,但不是所有的对象都可以称为线程,只有实现了Runnable接口的类,才可以称为线程。
在Java中,线程通常是通过调度模式来执行的。
所谓抢占式调试模式是指,许多线程处于可以运行状态,即等待状态,但实际只有一个线程在运行。
因为线程的抢占方式,所以程序每次运行的结果可能不一样。

public class threadTest{
  public static void main(String[] args){
    computeA a = new computeA();
    computeB b = new computeB();
    Thread t1 = new Thread(a);
    Thread t2 = new Thread(b);
    t1.start();
    t2.start();
  }
}

class computeA implements Runnable{
  int i = 0;
  public void run(){
    for(int i = 0; i<10; i++){
      System.out.println(i);
    }
  }
}

class computeB implements Runnable{
  public void run(){
    for(int i=0; i<10; i++){
      System.out.println("这个数字是:" + i);
    }
  }
}

通过继承Thread类来创建线程:

public class threadTest{
  public static void main(String[] args){
    computeA a = new computeA();
    computeB b = new computeB();
    a.start();
    b.start();
  }
}

class computeA extends Thread{
  int i = 0;
  public void run(){
    for(int i = 0; i<10; i++){
      System.out.println(i);
    }
  }
}

class computeB extends Thread{
  public void run(){
    for(int i=0; i<10; i++){
      System.out.println("这个数字是:" + i);
    }
  }
}

第13章 线程