多线程编程(一)------多线程概念

一、进程

        要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在。

 1.1 进程

       打开任务管理器我们就看到了进程的存在。而通过观察,我们发现只有运行的程序才会出现进程。

进程:就是正在运行的程序。进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。

即每个进程之间是独立的,每个进程均运行在其专用的受保护的存空间内(比如同时打开QQ、Xcode,系统就会启动2个进程);

1.2 多进程的意义

        单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情。

    举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。也就是说现在的计算机都是支持多进程的,可以在一个时间段内执行多个任务。  并且呢,可以提高CPU的使用率。


二、线程

  2.1 线程    

      在同一个进程内又可以执行多个任务,而这每一个任务我们就可以看做是一个线程。  

线程:是程序的执行单元,执行路径。是程序使用CPU的最基本单位。1个进程由一个或多个线程组成(每1个进程至少要有  1 条线程);线程是进程的基本执行单元,一个进程的所有任务都在线程中执行(比如使用酷狗播放音乐、使用迅雷下载电影,都需要在线程中执行)

  单线程:程序只有一条执行路径。

  多线程:程序有多条执行路径。

2.2 多线程的意义

      多线程的存在,不是提高程序的执行速度。其实是为了提高应用程序的使用率。程序的执行其实都是在抢CPU的资源,CPU的执行权。 多个进程是在抢这个资源,而其中的某一个进程如果执行路径比较多,就会有更高的几率抢到CPU的执行权。我们是不敢保证哪一个线程能够在哪个时刻抢到,所以线程的执行有随机性。

2.3 多线程的原理

        同一时间,cpu只能处理一条线程,只有一条线程在工作。多线程并发执行其实cpu快速的在多个线程直接调度(切换)。如果cpu调度的时间足够快,就造成了多线程并发执行的假象。如果线程非常多,cpu在n个线程之间切换,消耗大量的CPU资源。每条线程被调度执行的次数会降低,导致线程的执行效率降低。

2.4 多线程的优点和缺点

       优点:能适当提供程序的执行效率,能适当提高资源的利用率(cpu ,内存利用率)。线程是上的任务执行完后自动销毁。

       缺点:分为时间成本和空间成本。开启线程需要占用一定的内存空间(默认情况下主线程占用1M,子线程占用512).如果开启大量的线程会占用大量的内存空间。线程越多,cpu在调用线程上的开销就越大。程序设计更加复杂如多线程之间通信,多线程的数据共享。



      思考题: Java虚拟机的启动时单线程还是多线程?

      多线程。原因是垃圾回收线程也要先启动,否则很容易会出现内存溢出。原因是垃圾回收线程也要先启动,否则很容易会出现内存溢出。

  
 



   
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值