模块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();
}
}
}