线程和优先级总结

    线程也是有状态和生命周期的,每个Java程序都会有一个缺省的主线程,对于应用程序applcation来说main方法就是一个主线程。Java语言使用的是Thread类及其子类的对象来表示线程的。创建一个新的线程的生命周期如下状态:

1) 新建当一个Thread类或者其子类的对象被声明并创建时,新的线程对象处于新建状态,此时它已经有了相应的内存空间和其他资源。

2) 就绪处于新建状态的线程被启动后,将进入线程队列排队等待CUP服务,这个时候具备了运行的条件,一旦轮到CPU的时候,就可以脱离创建它的主线程独立开始自己的生命周期。

3) 运行就绪的线程被调度并获得CUP的处理边进入了运行状态,每一个Thread类及其子类的对象都有一个重要的run()方法,当线程对象被调度执行的时候,它将自动调用本对象的run()方法,从第一句代码开始执行。所以说对线程的操作应该写到run()方法中

4) 阻塞一个正在执行的线程如果在某种情况下不能执行了。进入阻塞状态,这个时候它不能进入排队状态,只有引起了阻塞的原因消失的时候,线程才可以继续进入排队状态等待CUP处理。

5) 死亡处于死亡状态的线程不具有继续执行的能力,线程死亡主要的原因是正常运行的线程完成了全部工作,即执行完了run()方法,另外就是被提前强制的终止了。

    线程的调度也是有优先级别的,就是说同样的排列优先级高可以提前被CPU处理,主要分三个级别,高中低。分别代表的数字是10.5.1分别有三个常量代表不可以被改变。最小优先级的常量是MIN_PRIORITY,普通的优先级的常量是NORM_PRIORITY,最高的优先级的常量是MAX_PRIORITY一般主线程的优先级是普通,另外可以通过Thread类的setPriority(int a)方法来修改系统自动设置的线程优先级。

Java中编程实现多线程应有两种途径,一种是创建自己的线程子类,另外是实现一个接口Runnable.无论是那种途径最终读需要使用Thread类及其方法。Thread类有两种构造方法,public Thread()用来创建一个线程对象。public Thread(Runnable r)创建线程对象,参数r成为被创建的目标对象。这个目标必须实现Runnbale接口,给出该接口的run()方法的方法体,再方法体中操作。用两个构造方法创建完的线程就是一个新建的状态,等待处理。然后启动线程的start()方法,启动线程对象,线程进入排队状态也就是就绪状态。然后线程操作run()方法这个方法里的内容是被系统处理的内容。如果想使线程进入休眠状态可以调用sleep()方法,可以给一个参数,代表休眠的毫秒。如果给两个参数代表那秒。终止线程用yield()方法来完成。判断线程是否销毁可以用isAlive()方法判断线程是否活着。Runnable接口只有一个run()方法,我们实现这个接口把要操作的代码写到这个方法中,然后再把实现了整个接口的类的实例传给Therad类的构造方法即可操作线程。线程同步是一个在处理线程的时候需要注意的问题,同步方法要用synchronized关键字类修饰。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值