当前位置: 首页 > news >正文

网站开发研究手段有哪些网站移动端是什么情况

网站开发研究手段有哪些,网站移动端是什么情况,网站建设公司资讯,网站开发不兼容ie8GCD的全称为Grand Central Dispatch#xff0c;翻译为大中央调度#xff0c;是Apple开发的一个多线程编程解决方法。 进程和线程的概念#xff1a; 正在进行中的程序被称为进程#xff0c;负责程序运行的内存分配#xff0c;每一个进程都有自己独立的虚拟内存空间。 线程是… GCD的全称为Grand Central Dispatch翻译为大中央调度是Apple开发的一个多线程编程解决方法。 进程和线程的概念 正在进行中的程序被称为进程负责程序运行的内存分配每一个进程都有自己独立的虚拟内存空间。 线程是进程中一个独立的执行路径即主线程主线程有1M的栈区对于耗时的执行路径可以放在子线程512K栈区中执行。 Tip新建线程会消耗内存空间和CPU事件线程太多会降低系统的运行性能多线程是通过CPU时分复用实现的。 Tip多线程是为了并发执行多项任务不会提高单个算法本身的执行效率。 iOS中三种多线程技术 1.NSThread 建立一个线程方便但是管理多个线程非常困难但是NSThread的currentThread方法可以跟踪任务所在的线程。 2.GCD Grand Central Dispatch基于C语言的底层API使用block来定义任务推荐使用。 3.NSOperation/NSOperationQueue 使用GCD的一套OC API提供了一些GCD中不易实现的特性。 Tip直接使用GCD更好一些。 GCD的核心思想是把操作block定义任务放入队列中队列的特点是FIFO先进先出出队时操作被分配到CPU上进行处理。 Tip队列不是线程也不表示对应的CPU例如双核CPU谁空闲分配给谁出队时分配到哪个CPU是不需要被关心的。 TipGCD的函数都是以dispatch开头的dispatch的含义是分派、调度。 TipNSThread的currentThread得到的是name和num字典其中num1表示主线程。 【进程同步和异步的概念】 进程同步一个操作没有完成则不返回必须一件一件的做事情一件事情返回了才能做下一件事情。 进程异步多个操作交替进行操作的返回时机不确定。 【串、并行队列】 Tip同步为sync异步为async 1.串行队列的异步任务使用一个子线程依次执行。 应用串行队列中的异步任务会依次执行例如先下载图片然后处理两个任务有明确的先后顺序顺序是确定的。 /*** 串行队列*/ - (void)gcdDemo1{dispatch_queue_t q dispatch_queue_create(queue1, DISPATCH_QUEUE_SERIAL);for (int i 0; i 3; i) {dispatch_async(q, ^{NSLog(% i %d,[NSThread currentThread],i); //跟踪当前线程});} }打印串行队列的输出发现i的值是从0到2分别输出的 2015-02-16 17:28:11.559 多线程初步[1493:119215] NSThread: 0x7986cbb0{number 2, name (null)} i 0 2015-02-16 17:28:11.559 多线程初步[1493:119215] NSThread: 0x7986cbb0{number 2, name (null)} i 1 2015-02-16 17:28:11.559 多线程初步[1493:119215] NSThread: 0x7986cbb0{number 2, name (null)} i 2 2.并行队列的异步任务使用多个子线程无序执行一般任务较少时几个任务就开几个线程较多时则开部分线程。 应用一系列的异步任务没有先后顺序。 /*** 并行队列*/ - (void)gcdDemo2{dispatch_queue_t q dispatch_queue_create(queue2, DISPATCH_QUEUE_CONCURRENT);for (int i 0; i 3; i) {dispatch_async(q, ^{NSLog(% i %d,[NSThread currentThread],i); //跟踪当前线程});}}打印输出发现i的值是随机排列的 2015-02-16 17:28:55.084 多线程初步[1521:119972] NSThread: 0x796347d0{number 2, name (null)} i 2 2015-02-16 17:28:55.084 多线程初步[1521:119975] NSThread: 0x79956380{number 3, name (null)} i 0 2015-02-16 17:28:55.084 多线程初步[1521:119973] NSThread: 0x796a2ba0{number 4, name (null)} i 1 3.串行队列的同步任务只使用主线程顺序执行用处较少。 /*** 串行队列的同步任务*/ - (void)gcdDemo12{dispatch_queue_t q dispatch_queue_create(queue1, DISPATCH_QUEUE_SERIAL);for (int i 0; i 3; i) {dispatch_sync(q, ^{NSLog(% i %d,[NSThread currentThread],i); //跟踪当前线程});} }2015-02-16 17:33:12.938 多线程初步[1574:121669] NSThread: 0x7a25f5a0{number 1, name main} i 0 2015-02-16 17:33:12.938 多线程初步[1574:121669] NSThread: 0x7a25f5a0{number 1, name main} i 1 2015-02-16 17:33:12.938 多线程初步[1574:121669] NSThread: 0x7a25f5a0{number 1, name main} i 2 4. 并行队列的同步任务只使用主线程依次执行。 Tip串行队列异步任务的用处是最大的既可以异步又可以顺序执行。 Tip如果先向队列中加入异步任务再加入同步任务同步任务会穿插在异步任务中运行。 Tip并行队列难以控制执行顺序与最大并发数容易出错。 5.线程名字的作用打了断点后可以在左侧看到线程名称。 Tip通过点击CPU的运行状态还可以得到每个线程的CPU占用情况。 6.非ARC开发时不要忘记写dispatch_release(q); 【全局队列】 Apple提供的供所有App共同使用它是一种特殊的并行队列。 使用dispatch_get_global_queue获取第一个参数为优先级通过右侧的提示输入即可第二个是供以后使用的传入0即可。 与并行队列的区别不需要创建名称以com.apple开头。 缺点调试时无法得到准确队列的名称。 【主线程队列】 注意iOS只能在主线程上更新UI因此与UI更新有关的操作应该在主线程执行它是一种特殊的串行队列。 使用dispatch_get_main_queue()函数获取。 与串行队列的区别不需要创建名称以com.apple开头。 【进程阻塞】 注意主线程是一直工作的除非将程序杀掉否则主线程的工作永远不会结束。 由于同步任务要等待前面的任务因此在主线程中加入同步任务会引起进程阻塞。 Tip主线程中只能添加异步任务。 【小结】 1.并发编程对多线程编程进行了封装不需要关心线程的创建与回收是为了让程序员从复杂的线程控制中解脱出来只需要面对队列和任务即可。 2.注意队列的优先级永远写DISPATCH_QUEUE_PRIORITY_DEFAULT优先级出错时会造成优先级反转低优先级的线程可能会阻塞高优先级的线程为了保险起见应该使用串行队列的异步任务。 3.同步任务嵌套同步任务会引发阻塞原因在于第一个任务执行完毕的条件是第二个任务执行完毕而第二个任务执行完毕的条件是第一个任务执行完毕因此二者相互等待无法结束。 4.GCD队列有5个优先级优先级从高到底分别为Main-High-Default-Low-Background后面四级都放入GCD线程池中最高级的即为主线程。 转载于:https://www.cnblogs.com/aiwz/p/6154195.html
http://www.zqtcl.cn/news/927637/

相关文章:

  • 网站建设竞价托管服务wordpress搬站流程
  • 做视频网站视频文件都存放在哪室内设计网站平台
  • 外贸网站建设网合肥网站设计公
  • 网站建设设计制作 熊掌号一键生成小程序商城
  • 北滘做网站企业展厅 设计 公司 平安
  • 网站做seo外链常州营销型网站建设
  • 乐清门户网站建设网络推广关键词优化公司
  • 自己做的网站被攻击了企业展厅方案设计公司
  • 可信赖的郑州网站建设公司网站怎样实名认证
  • 创建一个网站的步骤是中国机械加工网招聘信息
  • 做电影解析网站烟台网站建设外贸
  • 做网站 网上接单汽车网站开发流程
  • 2017网站开发发展前景主页网站建设
  • 苏州手机网站建设费用上海企业制作网站
  • 网站上怎样做轮播图网站后台乱码怎么办
  • 专业网站建设品牌策划商务网站建设与维护考试
  • 网站开发手机版WordPress如何清空评论
  • 公司怎么建立网站吗010网站建设
  • 网站制作找哪家公司好湖北专业网站建设大全
  • 广州建设网站是什么关系wordpress 插件位置
  • 网站建设工作室 怎么样做一个网站需要多少钱
  • 北京网站制作人才免费企业网站源码
  • 微信商城网站怎么做网站备案是先做网站还是做完了备案
  • 工商局网站查询入口wordpress 文章列表顺序
  • 可以做平面设计兼职的网站模板商城建站
  • 织梦网站如何做301跳转畅销营销型网站建设电话
  • 新网企业邮箱保定seo
  • 河南国控建设集团招标网站网上注册公司核名流程
  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法