zoukankan      html  css  js  c++  java
  • 多线程概念

      • 进程:(各自运行在受保护的内存空间,进行的程序,类似于工厂)

      • 线程:(是进程的基本执行单元,每一行代码都是在线程中执行,程序启动默认有一个主线程,是干活的)听歌音乐放到后台也能听歌,迅雷也是一个道理,迅雷有五个线程,每一段线程下载文件的一部分内容,等全部完成后五个一拼,就下载完成。

      • 线程的串行:顺序执行,一行一行从上往下。假如下载三个文件,只能一个一个执行。要同时下载,所以,需要多线程。

      • 线程的并行:同一时间同时执行,并排跑,多个线程同时并发执行就是多线程。

      • 多线程原理:真正干活的是一个CPU,并发就是以纳秒为单位快速调度线程。造成一个假象(你这个骗子),所以线程多速度也不快,频繁调度会降低系统性能。因为干活的就是CPU(例如下载时候看别的,下载基本不动,留给下载的时间太少了,大家都在抢CPU)。

      • 创建线程开销:(1)1K的核心数据结构,执行一段代码。

                 (2)Stack Space一个栈区,无论是无线程还是子线程都是512K。

                 (3)Creation Time90毫秒。

        • 栈区:栈区是用来保存局部变量的。512K足够。

    • 多线程优缺点:(1)优点:提高程序执行效率,提高资源利用率。

                           (2)缺点:占内存,开多了CPU开销大,程序设计复杂。

                           (3)一般开3-6条。

    • 主线程:UI线程(所有UI相关操作都放到主线程),单击,滚动,拖拽时间。

    • 子线程:耗时线程,所有的网络访问。

    • 内存区域demo1:栈区地址比较大。07xfff... 常量区地址小。

    • 程序员不用管栈区内存,因为自动弹栈。需要管理堆区内存,堆区就是alloc init的。arc下也会自动管理。

    • 放到后台实例:新闻,先显示文字,然后图片先占位,然后用户可以先看文字,等下载好了图片出来再看。不能下载过程中表格无法拖拽,这样用户就怒了。所以开发多线程最主要的目的就是耗时操作放在后台。

  • 相关阅读:
    宝宝的成长脚印9/2
    宝宝的成长脚印9/5
    手动作花灯10/6
    EasyUI中EasyLoader加载数组模块
    easyui常用属性
    VS2010如何在一个web项目中使用APP_CODE下的自定义类
    MSSQL系统常用视图命令及其作用
    db_autopwn渗透流程
    渗透测试工具Nmap从初级到高级
    EasyUI中在表单提交之前进行验证
  • 原文地址:https://www.cnblogs.com/sgxx/p/5807070.html
Copyright © 2011-2022 走看看