线程
文章平均质量分 91
codeMonkey-吉
这个作者很懒,什么都没留下…
展开
-
synchronized同步锁
综上所述, 在sleep休眠过程中,当前线程不会让出持有的(“this”)锁,此时会出现异常情况,只有一个线程在执行,剩余线程处于Blockteb阻塞状态,而在wait计时等待过程中,当前线程会释放锁。思路:将数字,和字母分开,一个线程控制数字输出,另一个线程控制字母输出,即输出数字后,数字线程进入等待,同时唤醒字母线程,反之,输出字母时,字母程进入等待,同时唤醒数字线程。互斥锁实现线程之间的切换,需要从“用户态”切换到“内核态”,付出高昂的代价,会导致性能下降。只有一个线程执行的场景,使用偏向锁;原创 2024-02-28 17:17:56 · 1040 阅读 · 0 评论 -
线程池的常用接口实现及执行流程
4.如果线程池里面存活的线程数已经等于核心线程数了,且阻塞队列已经满了,再会去判断当前线程数是否已经达到最大线程数 maximumPoolSize,如果没有达到,则会调用 addWorker() 方法创建一个非核心线程去执行任务;3.如果工作线程数大于核心线程数,即线程池核心线程数已满,则新任务会被添加到阻塞队列中等待执行,当然,添加队列之前也会进行队列是否为空的判断;2、maximumPoolSize:最大线程数,线程池中最多线程,包含核心线程数,不能小于核心线程数。原创 2024-02-25 23:04:16 · 483 阅读 · 0 评论 -
线程基础详解
两个线程同时竞争synchronized锁时,获取锁的线程处于RUNNABLE运行状态,未获取锁的线程处于BLOCKED阻塞状态;join()方法通过wait()实现,是被插队的线程(主线程),处于等待状态。将子线程设置为守护线程,当主线程结束时,守护线程一起结束。所有用户线程执行结束后,JVM虚拟机会自动退出;守护线程执行结束后,JVM虚拟机不会自动退出;调用构造方法后,线程处于新建状态;调用构造方法后,线程处于新建状态;等待时间结束后,自动唤醒。设置当前线程为中断状态。创建Thread对象。原创 2024-02-22 17:55:03 · 1011 阅读 · 0 评论