测试Thread中常用的方法
1.start():启动当前线程,调用当前线程的run();
2.run():通常需要重写Thread类中的此方法,将创建的线程执行的操作声明在此方法中;
3.currentThread():静态方法,返回执行当前代码的线程;
4.getname():获取当前线程的名字;
5.setname():设置当前线程的名字;
6.yieid():释放当前cpu的执行权
7.join():在线程A中调用B的join(),此时线程A进入阻塞状态,直到线程B完全执行完之后,线程A才结束阻塞二状态;
8.stop;已过时,执行时,强制结束当前线程;
9.sleep(long millitime):让当前线程睡眠,指定的millitime为毫秒。在指定的时间内,当前线程为阻塞状态
10.isAlive():判断当前线程是否存活
线程的优先级:
MAX_PRIORITY:10
MIN_PRIORITY:1
NORM_PRIORITY:5
如何获取和设置当前线程的优先级:
getpriority():获取线程的优先级
setpriority():设置当前线程的优先级
说明:高优先级的线程要抢占低优先级线程的cpu的执行权,但只是在概率上讲,高优先级高概率的情况下被执行,
并不意味着只有高优先级的线程执行完以后,低优先级的线程才执行。
创建线程两种方式
方式一:
1.创建一个继承于thread类的子类 2.重写Thread类的run() -->将此线程执行的操作声明在run()中 3.创建Thread类的子类的对象 4.通过此对象调用start()
方式二:
1,创建一个实现了Runable的接口的类 2,实现类去实现Runable中的抽样方法:run() 3,创建实现类的对象 4,将此对象作为参数传递到thread类的构造器中,创建Thread类的对象 5,通过Thread类对象调用start()
比较创建线程的两种方式
开发中优先选择:实现runable接口的方式
原因:1.实现的方式没有类的单继承性的局限性
2.实现的方式更适合处理多个线程有共享数据的情况
联系:public class Thread impiements Runnable
相同点:两种方法都需要重写ron()方法,将线程奥执行的逻辑声明在run()中