zoukankan      html  css  js  c++  java
  • 多线程(1)

    当不希望 操作被中断的时候 就会用到 多线程

    当用户在下载资源,进行图像处理,耗时数据处理等任务时,往往希望

    操作这个任务的时候 其他操作不会被中断, 这时候就会用到多线程

    在单线程中一个线程只能执行一个任务,一个任务处理不完另一个任务就不能开始,这样会影响用户体验

    多线程 :每个应用程序的内部,都会存在一个或多个执行的线程。它同时或者一个几乎同时执行不同的操作

    每个系统运行的应用程序都是一个进程 每个进程里面都包含一个或多个线程。

    线程是一组指令的集合,程序中一个单一的顺序控制流程,是一个程序中独立运行的片段

    程序运行后,系统会创建一个叫做主线程的线程,所有的UI控件都必须运行在主线程中,所以也有人叫它UI线程

    如果把所有的任务都放在主线程中,容易造成UI阻塞

    多线程:在同一个应用程序中,同时运行多个线程,完成不同的工作,叫做多线程

    ios中有几种多线程方式:

    iOS中有3种多线程策略供开发者使用:NSThread,NSOperation(基类,不可以直接使用, 只能使用它的子类),GCD

    GCD 苹果推荐的一种实现多线程的方式

    轻量级 :对系统框架的依赖性的程度

    NSThread:是这三种策略里面相对轻量级的,需要自己去管理他的生命周期,以及线程之间的同步,线程共享同一应用程序的部分内存空间,他们拥有对数据相同的访问权限,所以得协调多个线程对同一数据访问,常用的做法是在访问之前加锁,这回导致一定的性能开销

  • 相关阅读:
    一个项目多个App项目搭建
    mac 配置sencha touch环境
    mac 配置pylucene
    django博客开发
    xampp添加 django支持
    mac安装apache的mod_wsgi模块
    修改xampp默认sql密码
    xampp 安装 mysql-python
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    MySQL问题解决:-bash:mysql:command not found
  • 原文地址:https://www.cnblogs.com/popper123/p/4763214.html
Copyright © 2011-2022 走看看