美文网首页
多线程一

多线程一

作者: 纳兰沫 | 来源:发表于2020-04-16 20:36 被阅读0次

线程 进程

线程的定义

线程是进程的基本执行单元

1.一个进程的所有任务都在线程中执行
2.进行要想执行任务 必须得有线程 进程至少要有一条线程

程序启动会默认开启一条线程 这条线程被称为主线程或UI线程

进程的定义

1.进程是指在系统中正在执行的一个应用程序
2.每个进程之间是独立的,每个进行均运行在其专用且受保护的内存

线程和进程的关系

地址空间: 同一进程的线程共享本进程的地址空间 而进程之间则是独立的地址空间
资源拥有: 同一进程内的线程共享本进程的资源如内存 I/O cpu等 但是进程之间的资源是独立的
线程是处理器调度的基本单位 但是线程不是

多线程的意义

1.能适当提高程序的执行效率
2.能适当提高资源的利用率(CPU 内存)
3.线程上的任务执行完成后 线程会自动销毁
缺点
1.开启线程需要占用一定的内存空间(默认情况下 每一条线程都占用512kb)
2.如果开启大量的线程 会占用大量的内存空间 降低程序的性能
3.线程越多 CPU在调用线程上的开销就越大
4.程序设计更加复杂 比如线程间的通信 多线程的数据共享

多线程的生命周期

多线程的生命周期.png

线程池调度任务的周期

线程池调度任务的周期.png

nonatomic 和 atomic

nonatomic 非原子属性
nonatomic:非线程安全,适合内存小的移动设备
atomic 原子属性(线程安全),针对多线程设计的,默认值
1.保证同一时间只有一个线程能够写入(但是同一个时间多个线程都可以取值)
2.atomic 本身就有一把锁(自旋锁)
3.单写多读:单个线程写入,多个线程可以读取
atomic:线程安全,需要消耗大量的资源

所有属性都声明为 nonatomic
尽量避免多线程抢夺同一块资源
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力

相关文章

  • 多线程介绍

    一、进程与线程 进程介绍 线程介绍 线程的串行 二、多线程 多线程介绍 多线程原理 多线程的优缺点 多线程优点: ...

  • 多线程编程

    多线程编程之Linux环境下的多线程(一)多线程编程之Linux环境下的多线程(二)多线程编程之Linux环境下的...

  • 多线程

    创建一个多线程 创建多线程-继承线程类 创建多线程-实现Runnable接口 创建多线程-匿名类code

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

  • iOS多线程 NSOperation

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程 pthread、NSThread

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程: GCD

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程运用

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程基础

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS 多线程简介

    一.本文介绍点 1.为什么要学习多线程2.什么是多线程3.多线程的原理4.多线程的优缺点5.多线程的应用6.多线程...

网友评论

      本文标题:多线程一

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