2.多线程基础-线程方法
线程方法:多线程常用方法与优先级
A.线程的主要方法
1.currentThread:得到当前线程
2.isAlive:判断当前线程是否处于活动状态
3.sleep:在指定的毫秒数内让当前“正在执行的线程”暂停执行,这个“正在执行的线程”是指this.currentThread()返回的线程
3.1:sleep和wait的区别:
共同点:sleep和wait都会释放线程的CPU占用
不同点:sleep属于线程的方法,且sleep不会释放当前对象的锁。而wait属于Object的方法,且会释放对于当前对象的锁
4.getId:去的当前线程的唯一标识
5.interrupt:给当前标记为中断状态, interrupted:测试当前线程是否已经中断, isInterrupted:测试当前线程是否已经中断
Thread.currentThread().interrupt();//此处会给当前事务打一个中断标记,但是并不是放弃后续的代码执行
Thread.interrupted(); //true
Thread.interrupted(); //false 按照上面的执行 那么就是此结果 第一次返回true并且清除中断状态 因此第二次为false
Thread.currentThread().interrupt();
Thread.currentThread().isInterrupted();//true
Thread.currentThread().isInterrupted(); //true 此方法不会清除状态
6.stop:暴力停止线程 调用stop方法会跑出ThreadDeath异常 在通常情况下此异常不需要显示捕捉
6.stop:暴力停止线程
7.suspend与resume:暂停与恢复程序执行:该方法会当前的线程对象 使得别的线程无法调用该线程的方法
8.yield:放弃当前CPU资源 但是放弃的时间不确定,也可能刚刚放弃 又马上获取
B.线程的优先级
1.线程的优先级
线程可以划分优先级,优先级高的线程可以得到的CPU资源较多,也就是CPU优先执行优先级较高的程序 MIN_PRIORITY = 1 MAX_PRIORITY = 10
2.线程优先级的继承特性
线程的优先级具有继承性 子类与父类的优先级是一样的,高优先级的程序总是大部分先执行完,但是不代表高优先兴的程序全部先执行完毕
3.优先级具有随机性,因此不要将优先级作为程序执行的顺序

浙公网安备 33010602011771号