java多线程的一些处理技巧

1)建议使用抛异常的方法来实现线程的停止,因为在catch块中还可以将异常向上抛,使线程停止的事件得以传播
2)使用suspend和resume方法时,如果使用不当,极易造成公共的同步对象的独占,使其他线程无法访问公共同步对象
3)yield方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间,但放弃的时间是不确定,有可能刚刚放弃,马上又获得CPU时间片。
4)线程的优先级具有继承性,比如A线程启动B线程,则B线程的优先级和A线程一样
5)高优先级的线程总是大部分先执行完,CPU尽量将执行资源让给优先级高的线程,但不代表高优先级的线程全部先执行完。
6)守护线程是一种特殊的线程,它的特性有陪伴的含义,当进程中不存在非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾回收线程
7)只有共享资源的读写访问才需要同步化,如果不是共享资源,那么根本就没必要同步化。
8)关键字synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时可以再次得到该对象的锁
9)当一个线程执行的代码出现异常时,其所持有的锁会自动释放。
10)由于存在String常量池的问题,synchronized代码块都不适用String作为锁对象,而改用其他,比如说new Object实例化一个Object对象
11)当方法wait被执行后,锁被自动释放,但执行完notify方法,锁却不自动释放,只有当执行完notify所在的同步synchronized代码块后才释放锁。
12)当线程处于wait状态时,调用线程对象的interrupt方法会出现InterruptException异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值