并发编程
文章平均质量分 53
ztliduo
这个作者很懒,什么都没留下…
展开
-
并发编程(二) volatile的应用
在阅读别人代码的时候,能够看到volatile关键字,由于自己用的少,查询过一些网上的资料,理解也并不透彻。今天结合书上的知识重新梳理一遍volatile的实现原理。 * volatile是轻量级的synchronized,它保证了共享变量在多处理器开发中的“可见性”。 * 什么是可见性呢?可见性的意思是当一个线程修改一个共享变量时,另一个线程能读取到这个修改的值。 *翻译 2017-01-14 10:37:12 · 311 阅读 · 0 评论 -
yield()函数的使用
yield函数在并发编程中是非常重要的一个概念,尤其在多核计算机还不是那么普及的年代,要完成一个“并发”程序,是不得不借助yield函数的。 我们知道,yield的意思是“屈服、礼让”,在程序中表现为当前线程会尽量让出CPU资源来给其他线程执行,但是yield函数背后究竟发生了什么呢,我们结合线程、栈来说明函数背后是如何执行,程序是如何配合CPU来完成yield函数的。首先我们来看一个例子,100翻译 2017-01-15 23:07:54 · 14673 阅读 · 0 评论 -
并发编程(一) 上下文切换带来的损耗
我们平时写的程序默认都是由一个main函数进入,到函数执行完毕,那么我们的程序也就结束了。这个过程其实是了一个进程(即应用程序)被读入内存中,直到执行完毕后移除内存的整个过程。不管是从前的单核还是如今的性能越来越好的多核计算机,在一个进程中能够“并发”的执行多个线程都是及其重要的。在单CPU时代,由多个线程来模拟“并发”可以让一些程序执行得更合理,比如说在浏览器中一个线程处理文字,另外一个线程并行的原创 2017-01-13 22:47:33 · 2047 阅读 · 0 评论 -
操作系统之 用户级线程与内核级线程
用户级线程 User Level Thread 在上一篇文章说过yield函数后,对yield函数的实现、线程和栈的关系都有了一个大概的了解。yield函数是程序员直接调用,可以对多个线程占用CPU的顺序等做一定的控制。这就是所谓的用户级线程。核心级线程 Kernel Level Thread 现代PC大都有多个CPU,这里要对多处理器和多核的区别做一些说明,多处理器指的是一台计算机上有多个C原创 2017-01-16 22:11:46 · 1365 阅读 · 0 评论