
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程开发语言随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,Java编程守护线程与队列类型。
1、守护线程定义
守护线程(DaemonThread)也被称之为后台线程或服务线程,守护线程是为用户线程服务的,当程序中的用户线程全部执行结束之后,守护线程也会跟随结束。
守护线程的角色就像“服务员”,而用户线程的角色就像“顾客”,当“顾客”全部走了之后(全部执行结束),那“服务员”(守护线程)也就没有了存在的意义,所以当一个程序中的全部用户线程都结束执行之后,那么无论守护线程是否还在工作都会随着用户线程一块结束,整个程序也会随之结束运行。
2、阻塞队列和非阻塞队列
阻塞队列(BlockingQueue)提供了可阻塞的put和take方法,它们与可定时的offer和poll是等价的。如果队列满了put方法会被阻塞等到有空间可用再将元素插入;如果队列是空的,那么take方法也会阻塞,直到有元素可用。当队列永远不会被充满时,put方法和take方法就永远不会阻塞。
3、有界队列和无界队列
有界队列:是指有固定大小的队列,比如设定了固定大小的ArrayBlockingQueue,又或者大小为0的SynchronousQueue。
无界队列:指的是没有设置固定大小的队列,但其实如果没有设置固定大小也是有默认值的,只不过默认值是Integer.MAX_VALUE,当然实际的使用中不会有这么大的容量(超过Integer.MAX_VALUE),所以从使用者的角度来看相当于“无界”的。
4、延迟队列
延迟队列(DelayQueue)是基于优先队列PriorityQueue实现的,它可以看作是一种以时间为度量单位的优先的队列,当入队的元素到达指定的延迟时间之后方可出队。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。