• 操作系统


    """
    递归锁的特点
    可以被连续的acquire和release
    但是只能被第一个抢到这把锁执行上述操作
    它的内部有一个计数器 每acquire一次计数加一 每realse一次计数减一
    只要计数不为0 那么其他人都无法抢到该锁
    """
    # 将上述的
    mutexA = Lock()
    mutexB = Lock()
    # 换成
    mutexA = mutexB = RLock()

    """
    无论是开设进程也好还是开设线程也好 是不是都需要消耗资源
    只不过开设线程的消耗比开设进程的稍微小一点而已

    我们是不可能做到无限制的开设进程和线程的 因为计算机硬件的资源更不上!!!
    硬件的开发速度远远赶不上软件呐

    我们的宗旨应该是在保证计算机硬件能够正常工作的情况下最大限度的利用它
    """
    # 池的概念
    """
    什么是池?
    池是用来保证计算机硬件安全的情况下最大限度的利用计算机
    它降低了程序的运行效率但是保证了计算机硬件的安全 从而让你写的程序能够正常运行
    """

    """
    进程:资源单位
    线程:执行单位
    协程:这个概念完全是程序员自己意淫出来的 根本不存在
    单线程下实现并发
    我们程序员自己再代码层面上检测我们所有的IO操作
    一旦遇到IO了 我们在代码级别完成切换
    这样给CPU的感觉是你这个程序一直在运行 没有IO
    从而提升程序的运行效率

    多道技术
    切换+保存状态
    CPU两种切换
    1.程序遇到IO
    2.程序长时间占用

    TCP服务端
    accept
    recv

    代码如何做到
    切换+保存状态

    切换
    切换不一定是提升效率 也有可能是降低效率
    IO切 提升
    没有IO切 降低

    保存状态
    保存上一次我执行的状态 下一次来接着上一次的操作继续往后执行
    yield
    """

    """
    理想状态:
    我们可以通过
    多进程下面开设多线程
    多线程下面再开设协程序
    从而使我们的程序执行效率提升
    """

  • 相关阅读:
    如何导入文件夹在项目中
    KVC的学习
    ScrollView学习01
    KVO与KVC整理资料
    KVO监听者
    进程与线程
    解决SQL 2008数据库日志文件过大导致占满整个分区的问题:清理数据库日志文件
    SharePoint开发中发现的SharePoint本身的一些问题
    从十个方面提升SharePoint网站性能
    解决SharePoint2010文档库中新建文档不是保存到文档库而是保存到本地电脑的问题
  • 原文地址:https://www.cnblogs.com/mayrain/p/12790450.html
Copyright © 2020-2023  润新知