模块10 多线程

学习目标:

理解进程和线程的概念。
掌握实现线程的方法。
了解线程的生命周期。

知识准备:

多线程是指同时使用存在几个执行体,按几条不同的执行路线共同工作的情况。

概念:

进程是程序的一次执行过程,它对应从代码加载,执行到执行完毕的一个完整过程。
线程是比进程更小的运行单位。
一个进程在执行的过程中,可以产生多个线程。

Thread类和Runnable接口:

创建线程的方法有两种:
(1)通过继承线程类Thread来创建线程。
(2)建立一个实现Runnable接口的类。

Thread类举例:

package com.java.thread;

 public class DemoThread1 {

 public static void main(String[] args) {
	
	ThreadA a = new ThreadA();
	ThreadB b = new ThreadB();
	a.start();
	b.start();
  }

}

class ThreadA extends Thread{

@Override
public void run() {
	for(int x=0; x<20; x++)
	System.out.println("线程A:"+ x);
	try {
		Thread.sleep(1000);
	} catch (InterruptedException e) {
		// TODO 自动生成的 catch 块
		e.printStackTrace();
	}
  }
}

class ThreadB extends Thread{

@Override
public void run() {
	for(int x=1000; x<1020; x++)
	System.out.println("线程B:"+ x);
	try {
		Thread.sleep(1000);
	} catch (InterruptedException e) {
		// TODO 自动生成的 catch 块
		e.printStackTrace();
	}
   }
}

Runnable举例:

package com.java.thread;

public class DemoRunnable1 {

public static void main(String[] args) {
	
	MyThreadA Mya = new MyThreadA();
	Thread a = new Thread(Mya);
	
	MyThreadB Myb = new MyThreadB();
	Thread b = new Thread(Myb);
    }

  }

class MyThreadA implements Runnable{

@Override
public void run() {
	
	for(int x=0; x<20; x++)
		System.out.println("线程A:"+ x);
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
}

}

class MyThreadB implements Runnable{

@Override
public void run() {
	
	for(int x=1000; x<1020; x++)
		System.out.println("线程B:"+ x);
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
}


}