目录
1.多线程定义
定义:同时对多项任务加以控制;
多线程,顾名思义,就是可以多件事情一起干;
比方说,一边听歌,一边吃饭,这就是多线程;先听歌后吃饭或者先吃饭后听歌,这就是单线程;
程序里同时执行多个任务并且加以控制,这个是java多线程的含义。
同时干多个事,能充分利用cpu 内存等硬件设备,提高程序运行效率。
2.多线程应用
单线程举例子:
package com.java.test;
public class demo01 {
private static void eat(){
for (int i = 0; i < 5; i++) {
System.out.println("吃饭");
}
}
private static void music(){
for (int i = 0; i < 5; i++) {
System.out.println("听歌");
}
}
public static void main(String[] args) {
eat();
music();
}
}
运行结果:
多线程举例子:
我们先定义吃饭听歌的类:
类都必须继承Thread这个类,然后重写里面的run方法就可以了。
还可以用Thread来设置线程执行的频率。
package com.java.test;
public class Music extends Thread{
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
//设置1s执行线程一次
Thread.sleep(1000);
System.out.println("听歌");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package com.java.test;
public class Eat extends Thread{
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
//设置1s执行线程一次
Thread.sleep(1000);
System.out.println("吃饭啊啊");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
测试类:
这里创建线程和创建对象差不多;
启动线程用start()方法;
package com.java.test;
public class Test {
public static void main(String[] args) {
//听音乐线程
Music musicThread=new Music();
//吃饭线程
Eat eatThread=new Eat();
//启动线程
musicThread.start();
eatThread.start();
}
}
运行效果:
注意:这里运行结果是1s设置一次的!