什么是GCD 全称Grand Central Dispatch 中暑调度器 纯C语言 提供了很多强大的函数 GCD 的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如 双核 四核) GCD会自动管理线程的生命周期 (创建线程 调度任务 销毁线程) 程序员只 ...
分类:
移动开发 时间:
2018-03-08 02:35:57
阅读次数:
293
13. 线程池 第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定 ...
分类:
编程语言 时间:
2018-03-05 23:34:40
阅读次数:
217
当你需要使用Java线程在多线程环境下进行编程时,理解Java的线程周期与线程的状态是非常重要的。通过实现Runnale接口或者继承Thread类,我们可以创建线程,为了启动一个线程,我们需要创建一个Thread对象,并且调用它的start()方法,以便以线程的方式来执行run()方法。 Java中 ...
分类:
编程语言 时间:
2018-01-23 15:38:54
阅读次数:
136
libev最大的特点是采用了轮询文件描述符(select,poll,epoll,iocp,kqueue)的方式来代替线程调度和切换,省去了线程切换,效率很高。 用小顶堆而不是链表来管理定时器,有以下优势: 1、容器中的元素实现有序排列(当然链表也能做有序排列,但性能不行,参见后面几点),这样在轮询时 ...
分类:
其他好文 时间:
2018-01-18 20:34:20
阅读次数:
194
Lock 是Java多线程的一个同步机制,用来控制线程对共享资源的访问。线程在执行同步方法或者代码块之前必须先获得一个锁。 Lock 的 lock() 和 unlock() 方法; lock():获得一个锁,如果锁不可用,则当前线程将因线程调度目的而被禁用,并在获得锁之前处于休眠状态。 unlock ...
分类:
编程语言 时间:
2018-01-10 00:11:10
阅读次数:
230
所谓的原子性,就是在执行过程中不会被线程调度机制打断的操作,这种操作从开始就一直运行到结束,中间不存在任何上下文切换。 还是以上篇讲到的x++操作为例。这是一个典型的‘读改写’的操作,在多线程的情况下,必须需要硬件的支持来保证‘读改写’的原子性,底层原理可以简单理解,通过锁总线的方式来实现。不过这里 ...
分类:
其他好文 时间:
2018-01-06 22:14:57
阅读次数:
267
协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。实现单线程的并发。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所 ...
分类:
其他好文 时间:
2018-01-03 17:36:33
阅读次数:
182
通过这一章的学习,我知道了程序,进程和线程之间的关系,知道了Java实现多线程的两种途径:1.创建Thread类的子类;2.在程序中定义实现Runnable接口的类。线程的中断,线程的六种状态,多线程调度,守护线程,线程的同步等。 ...
分类:
编程语言 时间:
2017-12-19 01:47:13
阅读次数:
194
java中,线程有五种状态:创建,就绪,运行,阻塞,死亡 创建:生成线程对象,但并没有调用该对象的start方法,则线程处于创建状态 就绪:当调用了线程的start方法后,该线程就进入了就绪状态,但此时线程调度程序还没把该线程设置为当前线程,此时就处于就绪状态,在线程运行之后,从等待或者睡眠中回来之 ...
分类:
编程语言 时间:
2017-12-18 18:46:50
阅读次数:
184
http://825635381.iteye.com/blog/2184680 ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等 ...
分类:
编程语言 时间:
2017-12-09 20:50:05
阅读次数:
242