• 进程、线程、同步、异步


    研究了解了一下这几个概念性问题:

    进程、线程:

    进程相当于一个软件,线程是这个软件中的某一段程序。

    同时打开运行多个软件时就是多进程,

    一个软件中可以同时执行多个功能就是多线程。

    理论区别:

    1. 进程是程序的一次执行,线程可以理解为进程中执行的一个程序片段。
    2. 进程间是相互独立的,表现在内存空间,上下文环境,线程运行在进程空间内。
    3. 一般来将(不采用特殊技术)进程无法突破进程边界获取其他进程的存储空间,而线程由于处于同一进程空间内,所以同一进程所产生的线程可以共享同一存储空间。
    4. 同一进程中两段代码不能同时执行,除非引入线程。
    5. 线程属于进程,当进程退出时,该进程下的所有线程将被强制退出并清除。
    6. 线程占用的空间资源少于进程占用空间资源。
    7. 进程和线程都有优先级。
    8. 在线程系统中,进程也可以理解为一个线程,可以理解为一个程序的第一个线程。

    单线程、多线程区别:

    1. 线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同工作,为多线程。
    2. 单线程是程序中只有一个单一的顺序控制流程,多线程是一个程序中同时运行多个线程,完成不同的工作

    同步异步:

    同步:发送方发送数据后,接收到了接收方返回的数据,再进行下面的操作。

    异步:发送方发送数据后,不接收接收方返回的数据,直接进行下面的操作。

    举个例子:普通B/S模式(同步)AJAX技术(异步)
    同步:提交请求->等待服务端处理->服务端处理完毕返回数据 (在这期间客户端浏览器不能做任何事情,必须等返回数据)
    异步:请求通过事件触发->服务端处理 (这时浏览器做其他事情)->处理完毕
  • 相关阅读:
    Python深入03 对象的属性
    利用Webkit抓取动态网页和链接
    分享:OCILIB 3.11.0 发布,跨平台 Oracle 驱动
    Knockoutjs实战开发:控制子绑定(control descendant bindings)
    利用InjectedBundle定制自己的Webkit(二)
    使用solrj和EasyNet.Solr进行原子更新
    Chaos网络库(二) Buffer的设计
    分享:djangohaystack+solr实现搜索
    Moon.ORM 4.4 隆重发布,在性能和使用便捷上一挑群雄(mysoft,cyq,pdf)
    数据结构利器之私房STL(中)
  • 原文地址:https://www.cnblogs.com/wangfengzhu/p/6434537.html
Copyright © 2020-2023  润新知