Java多线程-多线程的引入
定义:同时对多项任务加以控制;
什么是多线程呢,我可以简单的理解成 一边吃饭,一边听音乐 这个是多线程;假如 吃完饭再听音乐,或者先听音乐再吃饭,这个是单线程。
程序里同时执行多个任务并且加以控制 这个是java多线程的含义。同时干多个事,能充分利用cpu 内存等硬件设备,提高程序运行效率。
下面我们通过一个实例来体验下多线程:package com.java1234.chap09.sec01;
public class Test01 {
/**
* 听音乐
*/
private static void music(){
for(int i=0;i<100;i++){
System.out.println("听音乐");
}
}
/**
* 吃饭
*/
private static void eat(){
for(int i=0;i<100;i++){
System.out.println("吃饭");
}
}
public static void main(String[] args) {
music();
eat();
}
}
这个代码应该很简单理解。先听音乐,再吃饭,运行输出类似:
听音乐
听音乐
.
.
.
听音乐
吃饭
吃饭
.
.
.
吃饭
吃饭
我们用上多线程,一般吃饭,一边听音乐,
Eat线程类:package com.java1234.chap09.sec01;
public class Eat extends Thread{
@Override
public void run() {
for(int i=0;i<100;i++){
try {
Thread.sleep(100);
System.out.println("吃饭");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Music类:package com.java1234.chap09.sec01;
public class Music extends Thread{
@Override
public void run() {
for(int i=0;i<100;i++){
try {
Thread.sleep(100);
System.out.println("听音乐");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
测试类:package com.java1234.chap09.sec01;
public class Test02 {
public static void main(String[] args) {
Music musicThread=new Music();
Eat eatThread=new Eat();
musicThread.start();
eatThread.start();
}
}
运行输出类似:
吃饭
听音乐
.
.
.
吃饭
听音乐
.
.
吃饭
听音乐