多线程的定义是:同时对多项任务加以控制。
那什么是多线程呢?这个问题可以理解成一边吃饭、一边听歌。这个是多线程。假如吃完饭再听歌,
或者是先听歌再吃饭,这个是单线程。
程序里同时执行多个任务并且加以控制,这个是Java多线程的含义。同时干多个事情,
能充分的利用电脑CPU内存等硬件设备,并以提高程序运行效率。
使用代码体验:首先试一试往常的编程写法
package com.java.test; public class EatTest { /** * 听音乐 */ 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(); } }运行结果:
可以明显的看出来,它是听完100首歌在进行吃饭,无法做到一边听歌一边吃饭。
扫描二维码关注公众号,回复:
1169883 查看本文章
再试一试使用多线程实现的方法:
package com.java.test; /** * 听音乐的类 * @author Administrator * */ public class MusicThreadTest extends Thread{ @Override public void run() { for(int i=0;i<100;i++){ try { //暂停线程0.1秒种 Thread.sleep(100); System.out.println("听音乐"); } catch (InterruptedException e) { e.printStackTrace(); } } } }
package com.java.test; /** * 吃饭的类 * @author Administrator * */ public class EatThreadTest extends Thread{ @Override public void run() { for(int i=0;i<100;i++){ try { //暂停线程0.1秒种 Thread.sleep(100); System.out.println("吃饭"); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { MusicThreadTest musicThread=new MusicThreadTest(); EatThreadTest eatThread=new EatThreadTest(); musicThread.start(); eatThread.start(); } }运行结果:
可以看的出,它是并行执行的,听音乐、吃饭,听音乐、吃饭........。两件事请是同时执行。