zoukankan      html  css  js  c++  java
  • 第一篇:认识并发

    1.什么是并发?

      在百度百科上对于并发的解释为:并发,在操作系统中,是指一个时间段中有几个程序都处于已启动和运行完毕之间,且这几个程序都是在同一个处理及上运行,但在任何一个时间刻点上只有一个程序在处理机上运行。

        个人理解:并发是为了程序运行的更快,通过多线程执行任务达到快速运行目的。

    2.线程、进程概念区别:

        进程和线程都是一个时间段的描述,是CPU工作时间段的描述,只是颗粒大小不同。

            相同点:进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不鞥直接访问其他无关进程或线程的资源。

            不同点

    比较点                         进程                              线程
    定义 进程是执行中一段程序,一旦程序载入到内存中并准备执行,就是一个进程。打开QQ,打开一个进程。 单个进程中执行的每个任务就是一个进程。QQ中的文字传输,是一个进程
    单位                                 资源分配的基本单位、调度运行的基本单位、                             执行运算的基本单位
    隶属                                 一个进程可以有多个线程                             一个线程只属于一个进程
    开销                                进程创建、维护和管理的开销大                              轻量化的进程开销小。

    资源                               进程拥有系统资源                    同一进程里的所有线程共享进程里的内存和资源。
    通信                          父子进程采用进程间通信机制                  同一进程间的线程通过读取和写入数据到进程进行通信。
    销毁                           进程销毁,进程内的线程同时销毁

    进程内的所有线程可以看做同位体,处于相同级别。进程间线程可以操作进程间的其他线程。线程通过销毁主线程完成进程销毁。

    控制                           子进程不对其他子、父进程进行控制

                          进程中的线程可以控制同一进程内的所有线程。

    3.单线程、多线程、并发、并行概念区别:

        单线程:程序执行时,执行的程序路径是连续顺序的,必须前面的处理好,后面的才会执行。

         例如:你早上上班,正要打卡的时候,手机响了。。你如果先接了电话,等接完了,在打卡,就是单线程。

        多线程:一个进程中不只一个线程。在同一个时间段内可以做执行多个程序。

            例如:你早上上班,正要打卡的时候,手机响了。。如果你一手接电话,一手打卡。就是多线程。

        并发:系统中有多个任务同时存在,同一时间间隔两个或多个事件在发生。

        并行:系统内多个任务同时执行,同一时刻两个或多个事件发生。

    4.并发编程的有点和缺点

        优点:

    1. 提高性能,发挥多核CPU强大功能  --发挥性能
    2. 异步处理简单  --不同线程,可以执行不一样操作
    3. 响应更加灵敏的界面 --多任务,无需等待某个线程执行完

        缺点:

    1. 线程安全性  --死锁问题
    2. 线程活跃性  --  线程优先级低的线程长时间得不到执行
    3. 执行性能  --优于线程间上下文切换,时间片轮转执行性能不一定比单线程块
    作者: i孤独行者
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    第一章:Android系统的编译和移植实例读书笔记
    第二章:Android系统与嵌入式开发读书笔记
    第三章:Android移植平台工具介绍读书笔记
    第十章 嵌入式Linux的调试技术
    第九章 硬件抽象层:HAL
    第八章 让开发板发出声音:蜂鸣器驱动
    第七章 LED将为我闪烁:控制发光二极管
    第六章 第一个Linux驱动程序:统计单词个数
    第五章 搭建S3C6410开发板的测试环境
    第四章 源代码的下载和编译
  • 原文地址:https://www.cnblogs.com/dc-earl/p/9593749.html
Copyright © 2011-2022 走看看