多线程(一)

多线程

1、基本概念

进程:一个独立执行的程序 。

线程:进程中的执行流程 。CPU的最小执行单元 。

单线程:程序代码按调用顺序依次往下执行,只有一条执行路径;

多线程:程序需要同时完成多段代码的操作,有多条执行路径 。

代码示例:

public class Demo {

	public static void main(String[] args) {		
		show();
	}
	
	public static void show(){
		function1();
		function2();
	}
	
	public static void function1(){
		System.out.println("One");
	}
	
	public static void function2(){
		System.out.println("Two");
	}
}

单线程执行路径:


多线程执行路径:


2、线程调度

      Java使用抢占式调度模型,因此可以通过设置优先级来调度线程 。

      优先级:MIN_PRIORITY=1

                      MAX_PRIORITY=10

                      NORM_PRIORITY=5 (默认)

     设置优先级:public final void setPriority(int newPriority)

      注:线程优先级高,仅表示该线程获取CPU时间片的几率比较高,并不保证该线程每一次总是先执行,只是大部分时间总是先执行。

3、线程控制

       睡眠:public static void sleep(long millis)

                   在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。

       加入:public final void join()

                   等待该线程终止。

       礼让:public static void yield()

                   暂停当前正在执行的线程对象,并执行其他线程。

       守护:public final void setDaemon(boolean on)

                   将该线程标记为守护线程或用户线程 。

                   当所有线程都为守护线程时,JVM退出,即线程不再执行 。

       中断:public void interrupt()

                   中断线程 。

                   中断抛出InterruptedException异常,执行异常里的代码,以及异常之后的代码 。

                   区别于已经过时的stop()方法,中断之后不执行任何代码,彻底结束 。

4、线程生命周期

     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值