Java多线程的引入

多线程的定义是:同时对多项任务加以控制。


那什么是多线程呢?这个问题可以理解成一边吃饭、一边听歌。这个是多线程。假如吃完饭再听歌,

或者是先听歌再吃饭,这个是单线程。


程序里同时执行多个任务并且加以控制,这个是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首歌在进行吃饭,无法做到一边听歌一边吃饭。

再试一试使用多线程实现的方法:

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();
	  
}
}
运行结果:



可以看的出,它是并行执行的,听音乐、吃饭,听音乐、吃饭........。两件事请是同时执行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值