美文网首页IOS
线程与进程

线程与进程

作者: FH_iOS | 来源:发表于2018-05-18 10:58 被阅读0次

    进程:在系统中运行的一个应用程序就是一个进程,每个进程之间是相互独立的,每个进程均运行在其专用且受保护的内存空间内

    线程:一个进程的所有任务都是在线程中执行的,每个进程都至少有一个线程(主线程),同一线程的代码是顺序执行的

    多线程:一个进程可以开启多条线程,多条线程可以并行执行不同的任务,多线程的并行执行任务其实是CPU在多条线程之间切换调度 

    优点: 

    适当的提高了程序执行效率和资源的利用率,当线程执行完所有任务时会自动销毁; 

    缺点: 

    1.开启线程需要占用一定的内存空间;

    2.开启大量线程占用过多内存,CPU在调用线程中开销过大,降低程序性能; 

    3.程序设计更加复杂(如线程之间的通讯、线程间的资源共享等).

    主线程:一个进程运行后,默认会开启一条线程,成为主线程或UI线程,其主要作用就是处理UI事件、显示刷新UI界面

    进程:在系统中运行的一个应用程序就是一个进程,每个进程之间是相互独立的,每个进程均运行在其专用且受保护的内存空间内

    线程:一个进程的所有任务都是在线程中执行的,每个进程都至少有一个线程(主线程),同一线程的代码是顺序执行的

    多线程:一个进程可以开启多条线程,多条线程可以并行执行不同的任务,多线程的并行执行任务其实是CPU在多条线程之间切换调度 

    优点: 

    适当的提高了程序执行效率和资源的利用率,当线程执行完所有任务时会自动销毁; 

    缺点: 

    1.开启线程需要占用一定的内存空间;(开启一个线程需要占用512KB) 

    2.开启大量线程占用过多内存,CPU在调用线程中开销过大,降低程序性能; 

    3.程序设计更加复杂(如线程之间的通讯、线程间的资源共享等).

    主线程:一个进程运行后,默认会开启一条线程,成为主线程或UI线程,其主要作用就是处理UI事件、显示刷新UI界面

    加锁: 

    加锁能有效的防止因多线程抢夺资源造成的数据安全问题,但锁是非常耗费性能的,开发中尽量不要使用锁,将加锁、抢夺资源的逻辑交给服务器处理,减小移动客户端的压力. 

    1)互斥锁:把读和写的操作当成不可分割的部分,也叫做同步锁; 

    // 写法 

    @synchrosized(self) { 

    do something... 

    作用: 

    1.保证同一时间只有一条线程能访问共享资源,保证线程安全; 

    2.当共享数据被一个线程锁定时,另外的线程进入’休眠状态’等待任务执行完毕;当锁定线程任务执行完毕,下个线程会自动唤醒,执行任务; 

    相关文章

      网友评论

        本文标题:线程与进程

        本文链接:https://www.haomeiwen.com/subject/jwawdftx.html