juc阻塞队列(阻塞队列api)

juc阻塞队列(阻塞队列api)进程 运行一个程序就开启了一个进程 是系统调度和资源分配的基本单位 线程 是系统进行运算调度的最小单位 它包含在进程之中 是进程实际运算单位 一个进程中可以开启多个线程 管程 在数据结构叫做 monitor 在 Java 中叫做锁 进入方法的时候获取 monitor 对象

大家好,我是讯享网,很高兴认识大家。



        进程:运行一个程序就开启了一个进程,是系统调度和资源分配的基本单位。

        线程:是系统进行运算调度的最小单位,它包含在进程之中,是进程实际运算单位。一个进程中可以开启多个线程。

        管程:在数据结构叫做monitor,在Java中叫做锁,进入方法的时候获取monitor对象(锁),退出的时候释放。

        用户线程:我们日常使用,或者造出一个线程执行一些操作,都属于用户线程(如果主线程结束了,用户线程没结束,jvm还存在)

        守护线程:垃圾回收器执行过程中的行为,就是让守护线程去执行的。(如果主线程里只有守护线程,主线程结束,jvm也结束)

        新建态(NEW):将线程刚刚创建好,还没调用启动方法。

        可运行态(Runnable):这里是调用线程的执行方法,里面有两种状态一种是就绪态,一种是运行态,就绪态获取到CPU时间片就到达运行态,运行态失去CPU时间片或者用Thread.yield()就会从运行态回到就绪态。

        阻塞态(Blocked):获取synchronized锁或者Lock锁拿不到就阻塞态

        等待态(Waiting):这种就是无限期等待使用wait、join,必须有人唤醒notify/notifyAll(针对wait),或者运行结束唤醒。


讯享网

        含等待时间等待态(Timed Waiting):join(time)、wait(time)、sleep(time),要么等超时自动结束。

        终止态(Terminated):线程完成,或者异常已经结束。        

        2.1 wait和sleep区别

                wait和sleep都能被interrupt中断,wait是object类的方法,任何对象都能调用,sleep是Thread静态类里的方法,wait使用的时候一般在synchronized里,如果使用了会释放锁,别人可以获取释放的锁,sleep不会占用锁,也不会释放锁,在哪里都可用。

        3.1串行并行

        串行:任务一个完成以后再完成下一个任务 one by one。

        并行:多个任务同时执行。

        3.2并发 并行

        并行:同一时刻,多个线程执行独立不同的任务,互相不抢夺资源。

        并发:同时有多个任务执行同一任务,这一任务可能会造成资源抢占的问题,像单核CPU执行多个任务时候,就是通过时间片轮转模拟出来,同一时间处理多个任务。

小讯
上一篇 2025-05-28 21:37
下一篇 2025-05-08 08:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147325.html