线程Thread的类的核心方法

来源:互联网 发布:淘宝汽车用品店名大全 编辑:程序博客网 时间:2024/05/21 08:51

(1)      实现线程的方法

1)  继承Thread类

2)  实现Runnable接口

(2)      启动线程的方法(start)

start()方法的顺序并不代表线程启动的顺序。

currentThread()方法可返回代码段正在被哪个线程调用的信息。

isAlive()方法判断当前的线程是否处于活动的状态。什么是活动状态就是线程已经启动且尚未终止。线程处于正在运行或者准备开始运行的状态,就认为线程是存活的。

sleep()方法:在指定的毫秒内让当前正在执行的线程休眠(暂停执行),这个正在执行的线程是指this. currentThread()返回的线程。

getId()方法:获取线程的唯一标示。

yield()方法:放弃当前的CPU资源,将它让给其它的任务去占用CPU执行时间。但放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。

(3)      线程停止的方法

Java中有三种停止线程方法:

1)  使用退出标志位,使线程正常退出,也就是当run方法完成后线程终止。

2)  使用stop方法强行终止线程,但是这个方法不被推荐使用,因为stop和suspend及resume一样,都是作废过期的方法,使用它们可能产生不可以预料的结果。

3)  使用interrupt方法中断线程。

interrupt()方法:仅仅是在当亲线程中打印了一个停止的标记,并不是真的停止线程。

this. interrupt()方法:测试当前线程是否已经中断,执行后具有将转态标志清除为false的功能。

this.isInterrupt()方法:测试线程是否已经中断,但并不清除状态标志。

stop()方法:该方法已经作废,因为如果强制让线程停止则有可能使一些清理性的工作得不到完成,另一个情况就是对锁定的对象进行了解锁,导致数据到不到同步处理,出现数据不一致的问题。

(4)      线程暂停的方法

suspend()方法:暂停线程。

resume()方法:恢复线程的执行。

缺点:使用不当,极易造成公共的同步对象的独占,使其它线程无法访问公共同步对象。极易出现因为线程的暂停而导致数据不同步的情况。

(5)      线程的优先级

在操作系统中,线程可划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级交高的线程对象中的任务。

特点:线程的优先级与代码的执行顺序无关,线程的优先级具有一定的规则性,也就是CPU尽量将执行资源让给优先级比较高的线程。

线程的优先级具有随机性,也就是说优先级较高的线程不一定每一次都先执行。

setPriority()方法:设置线程的优先级。

 

(6)      守护线程

守护线程是一种特殊的线程,当线程中没有非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾回收线程。作用:为其它线程的运行提供便利服务,最典型的应用就是垃圾回收器(GC)。

0 0
原创粉丝点击