Java基础
tankfat
这个作者很懒,什么都没留下…
展开
-
ReentrantLock--设置获取锁的超时时间
在多线程并发下,在synchronize方法内,需要手动count时间/次数,超时后break,也可以直接利用ReentrantLock的tryLock方法,设置锁超时时间。package com.dq;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReentrantLock;public class ThreadTest { private static ReentrantLock lock =原创 2021-06-10 17:14:52 · 3166 阅读 · 0 评论 -
线程Interrupt与Stop对比
总结:尽量使用Interrupt来结束线程。原因:线程在被调用Interrupt前有2种情况a 线程处于阻塞状态: 当线程使用了sleep wait socket中的receiver ,accept等方法时。此时调用线程的interrupt方法,会抛出interruptException。阻塞中的方法抛出异常,通过代码捕获,然后break跳出循环状态,才能正常结束run方法。b 线程是未阻塞状态, 使用isinterrupt 方法判断线程的中断标志来退出循环。使用interrupt原创 2021-03-10 22:31:59 · 707 阅读 · 0 评论