首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
GC算法之串行并行并发
】的更多相关文章
GC算法之串行并行并发
串行收集器: 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高.但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器.当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上.可以使用-XX:+UseSerialGC打开. 并行收集器: 对年轻代进行并行垃圾回收,因此可以减少垃圾回收时间.一般在多线程多处理器机器上使用.使用-XX:+UseParallelGC.打开.并行收集器在J2SE5.0第六6更新上引入,在Java SE6.0中进行了增强--可以对年老…
串行&并行&并发,同步&异步
1. 串行&并行&并发 1.1 串行 这个非常好理解,字面意思,像串成一个串一样,顺序执行 上一个没执行完的话,后面的就必须无条件等待 一般情况就是一个线程里:任务一个接一个执行,类似于打饭只有一个窗口,还必须严格排队 1.2 并行 并行就是各干各的,彼此谁都不搭理谁 类似于打饭有好几个窗口,每个窗口都排着一条队 1.3 并发 这个就是比较难理解的了 我感觉这个词就是大家不知道取什么名字了然后就随便编了一个(小声BB) 这个就是各个线程在并行的同时,又各自盯着对方,能帮就帮,都是兄弟 就比…
雷子聊并发编程(001):基础知识之串行&并行&并发
前言 编写正确的程序很难,而编写正确的并发程序则难上加难.与串行程序相比,在并发程序中存在更多容易出错的地方.那么,为什么还要编写并发程序?原因很简单,能充分发挥与利用多处理器系统的强大计算能力. 在开始进入并发编程的编码学习之前,掌握必要的基础知识有助于并发编程底层源码部分的理解.因此,必须拎出来与大家好好聊上一聊. 什么是串行? 串行是指两个或者多个事件在顺序发生.串行单处理器与多处理器系统中都存在. 1.1 示意图 A线程将两个任务顺序执行. 1.2 举例 Anna给A.B两个学生辅导.A…
GCD同步异步 串行并行大解析
/** 核心概念 任务:block里需要执行的操作 队列:把任务添加进入队列中,按照先进先出的原则来执行任务 串行队列:一个一个的执行 并行队列:可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)并发功能只有在异步(dispatch_async)函数下才有效. 同步任务:不会开辟新的线程,任务在当前的线程中执行,同时任务是立刻执行 异步任务:会开辟新的线程(主队列不可以),任务在新开辟的线程执行(主队列在主线程中执行),不是立刻 执行任务 同步任务串行队列:不会开启新的线程,…
iOS多线程——同步异步串行并行
串行并行异步同步的概念很容易让人混淆,关于这几个概念我在第一篇GCD中有解释,但是还不够清晰,所以这里重写一篇博客专门对这几个概念进行区分: 先说一下队列和任务: (1)队列分为串行和并行,任务的执行分为同步和异步,异步是多线程的代名词,异步在实际引用中会开启新的线程,执行耗时操作. (2)队列只是负责任务的调度,而不负责任务的执行,任务是在线程中执行. 以上两点对了解串行.并行.同步.异步非常重要! 再说一下队列和任务的特点: (1)串行队列:任务按照顺序被调度,前一个任务不执行完毕,队列不会…
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
转:http://www.tuicool.com/articles/NVVnMn (1)GCD实现的同步异步.串行并行. ——同步sync应用场景:用户登录,利用阻塞 ——串行异步应用场景:下载等耗时间的任务 /** * 因为是异步,所以开通了子线程,但是因为是串行队列,所以只需要开通1个子线程(2),它们在子线程中顺序执行.最常用. */ -(void)gcdDemo1{ dispatch_queue_t q1=dispatch_queue_create("com.hellocation.gc…
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
(1)GCD实现的同步异步.串行并行. --同步sync应用场景:用户登录,利用堵塞 --串行异步应用场景:下载等耗时间的任务 /** * 由于是异步.所以开通了子线程.可是由于是串行队列,所以仅仅须要开通1个子线程(2),它们在子线程中顺序运行. 最经常使用. */ -(void)gcdDemo1{ dispatch_queue_t q1=dispatch_queue_create("com.hellocation.gcdDemo", DISPATCH_QUEUE_SERIAL);…
GC选择之串行收集与并行收集
GC 串行收集器 (古老 稳定 会有较长时间停顿)-XX:+UseSerialGC 新生代.老年代串行回收,新生代复制算法.老年代标记-压缩算法 并行收集器 ParNew (多核时性能比较好) Serial收集器的新生代并行版本 GC日志可以看到ParNew-XX:+UseParNewGC 新生代并行 老年代串行 新生代复制算法 需要多核支持 只影响新生代GC-XX:ParallelGCThreads限制线程数量 Parallel收集器 新生代复制 老年代标记压缩 更加关注吞吐量-XX:+Use…
IOS多线程知识总结/队列概念/GCD/串行/并行/同步/异步
进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间: 线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程. 队列:dispatch_queue_t,一种先进先出的数据结构,线程的创建和回收不需要程序员操作,由队列负责. 串行队列:队列中的任务只会顺序执行(类似跑步) dispatch_queue_t q = dispatch_queue_create(“....”, dispatch_queue_serial); 并…
iOS:GCD理解1(同步-异步、串行-并行)
1.并行-异步(ST1与ST2抢占资源) 1-1).获取 并行(全局)队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT , 0); 1-2).创建异步事件. dispatch_async(queue, ^{ //do something 1 }); dispatch_async(queue, ^…