当前位置:网站首页 > API设计与开发 > 正文

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



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

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

        管程:在数据结构叫做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执行多个任务时候,就是通过时间片轮转模拟出来,同一时间处理多个任务。

到此这篇juc阻塞队列(阻塞队列api)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • win32api模块(win32api教程)2026-03-24 09:00:05
  • 单片机设计作品(单片机设计作品含AD转换器)2026-03-24 09:00:05
  • swagger2关闭/v2/api-docs(swagger2 api)2026-03-24 09:00:05
  • 一级墨言教育分享:20种标题排版设计技巧,直接拿去抄二级墨言教育分享:20种标题排版设计技巧,直接拿去抄示范图片(一级墨言教育分享:20种标题排版设计技巧,直接拿去抄二级墨言教育分享:20种标题排版设计技巧,直接拿去抄示范图片素材)2026-03-24 09:00:05
  • 行为驱动设计(行为驱动设计包括)2026-03-24 09:00:05
  • 字体图标设计图片(字体图标的用法)2026-03-24 09:00:05
  • 单片机设计制作(单片机设计制作方案)2026-03-24 09:00:05
  • 单片机设计报告设计要求(单片机设计报告设计要求是什么)2026-03-24 09:00:05
  • esp8266 天气时钟(esp8266天气时钟的毕业设计)2026-03-24 09:00:05
  • 单片机设计与开发主要做什么(单片机设计与开发基础技能)2026-03-24 09:00:05
  • 全屏图片