美文网首页
【算法打卡60天】打卡Day7栈:如何实现浏览器的前进和后退功能

【算法打卡60天】打卡Day7栈:如何实现浏览器的前进和后退功能

作者: 花生无翼 | 来源:发表于2020-01-14 08:51 被阅读0次

    打卡Day7
    今天学习了09 | 栈:如何实现浏览器的前进和后退功能?
    09 | 队列:队列在线程池等有限资源池中的应用

    如何理解“队列”?
    先进者先出,这就是典型的“队列”。
    栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素。

    顺序队列和链式队列
    用数组实现的队列叫作顺序队列,用链表实现的队列叫作链式队列。

    循环队列
    如何写出没有bug的循环队列的实现代码?
    确定好队空和队满的判定条件。

    阻塞队列和并发队列
    阻塞队列其实就是在队列基础上增加了阻塞操作.
    线程安全的队列我们叫作并发队列。

    线程池没有空闲线程时,新的任务请求线程资源时,线程池该如何处理?各种处理策略又是如何实现的呢?
    有两种处理策略:
    第一种是非阻塞的处理方式,直接拒绝任务请求;
    另一种是阻塞的处理方式,将请求排队,等到有空闲线程时,取出排队的请求继续处理。

    队列的应用场景
    队列可以应用在任何有限资源池中,用于排队请求,比如数据库连接池等。实际上,对于大部分资源有限的场景,当没有空闲资源时,基本上都可以通过“队列”这种数据结构来实现请求排队。

    本文参考【极客时间】专栏《数据结构与算法之美》

    相关文章

      网友评论

          本文标题:【算法打卡60天】打卡Day7栈:如何实现浏览器的前进和后退功能

          本文链接:https://www.haomeiwen.com/subject/zqyoactx.html