线程
夜微凉4
这个作者很懒,什么都没留下…
展开
-
JAVA中的线程池原理
大部分的JVM都是用的KLT模型为什么要使用线程池?线程的创建涉及到用户态到内核态的转换,线程的创建和销毁都是比较耗资源的操作原创 2020-10-30 21:04:22 · 82 阅读 · 0 评论 -
java多线程中wait()方法和sleep()方法的区别
java中wait()方法和sleep()方法的区别1.wait()方法是object类的方法,而sleep()是Thread类的方法2.wait()方法必须使用在同步代码块synchronized中,而sleep()能在任何地方使用3.wait()方法会释放锁,而sleep()不会释放锁4.使用wait()方法不用抛出异常,而使用sleep()必须抛出InterruptedException异常...原创 2020-10-11 21:45:51 · 182 阅读 · 0 评论 -
Java中Synchronized和lock的区别
Synchronized和lock的区别1.synchronized是java中的关键字,lock是java中的接口2.Synchronized是会自动释放锁,lock锁要手动释放锁,否则有可能死锁3.Synchronized是非公平锁,lock锁默认是非公平锁,也可以在构造函数中设置为公平锁4.Synchronized是不可中断的,lock锁是可中断的...原创 2020-10-12 09:17:59 · 110 阅读 · 0 评论 -
JDK 中线程池ThreadPoolExecutor的使用
JDK 中线程池ThreadPoolExecutor的使用JDK 中线程池的使用DK 中提供的最核心的线程池工具类 ThreadPoolExecutor,在 JDK 1.8 中这个类最复杂的构造方法有 7 个参数。corePoolSize:线程池保有的最小线程数。maximumPoolSize:线程池创建的最大线程数。keepAliveTime:上面提到项目根据忙闲来增减人员,那在编程世界里,如何定义忙和闲呢?很简单,一个线程如果在一段时间内,都没有执行任务,说明很闲,keepAliveTime原创 2020-10-11 19:41:28 · 163 阅读 · 0 评论 -
进程和线程有什么不同?
进程和线程的根本区别是进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。...原创 2020-10-20 20:25:11 · 103 阅读 · 0 评论 -
java多线程的interrupt方法
线程的interrupt方法interrupt方法打断被sleep、wait、join方法阻塞的线程之后,会把线程的打断标记设置成true后重新设置成false。interrupt方法打断正在运行的线程的时候,正在运行的线程会把打断标记设置成true。打断标记的作用:可以判断一个线程是否被打断过可以优雅的结束一个线程(可以在线程的内部做一个判断,如果打断标记是true的话就结束当前线程)...原创 2020-10-18 21:02:35 · 106 阅读 · 0 评论 -
sleep、yield、join
sleep、yield、joinsleepsleep会让当前线程从Running状态转向TimedWaiting状态其他线程可以使用线程的interrupt方法打断正在睡眠的线程,这时sleep方法会抛出InterruptedException,这个时候被打断的线程马上被唤醒睡眠结束的线程不一定马上执行使用TimeUnit的sleep方法有更好的可读性yiled:调用yiled方法会使当前线程由运行状态转变为就绪状态join等待调用join方法的线程结束才继续执行当前线程...原创 2020-10-18 20:44:43 · 114 阅读 · 0 评论