A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小刀葛小伦 于 2018-3-21 15:42 编辑

    什么是多线程
多线程的基本概念
            1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)            一个进程(程序)的所有任务都在线程中执行。
什么是进程
          进程是一个具体的应用程序,线程是进程中的一个分支,为单独完成程序中的某一项或一组功能而存在。
应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程(线程是进程中的实体,一个线程必须有一个父进程)
三、多线程的作用
     
多线程不是为了提高执行速度,而是提高了应用程序的使用率。
      线程和线程共享“推内存和方法区内存”栈内存是独立的,一个线程一个栈
      可以给现实世界的人类一种错觉:感觉多个线程在同时并发进行。


四、多线程并行和并发:
        A:并行是逻辑上同时发生,指在某一个时间内同时运行多个程序

    B:并发是物理上同时发生,指在某一个时间点同时运行多个程序

五、Java运行原理
      java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个“主线程”,然后主线程去调用某个类的main方法。所以main方法运行在主线程中。在此之前的所有程序都是单线程。


六、多进程的意义:
       单进程的计算机只能做一件事,而现在都可以做多件事情,支持多进程,可以在一个时间段内执行多个任务。 提高CPU的使用率~

       问题:
[size=15.4545px]           一边玩游戏,一边听音乐是同时进行吗?
          不是。因为单COU在某一个时间点上只能做一件事情。(多核可以实现,但是会有很多进程,就不行了)

          而我们在玩游戏,或者听音乐的时候,是CPU在做着程序间的高效切换让我们觉得是同时进行的。    切换时间超短

七、多线程的优点
   
   能适当提高程序的执行效率      
   能适当提高资源利用率(CPU、内存利用率)

八、多线程的缺点

    创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用
-setStackSize:设置,但必须是4K的倍  数,而且最小是16K),创建线程大约需要90毫秒的创建时间如果开启大量的线程,会降低程序的性能线程越多,CPU在调度线程上的开销就越大程序设计更加复杂:比如线程之间的通信、多线程的数据共享



1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马