本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-10-23 13:59:45
阅读次数:
204
IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS...
分类:
移动开发 时间:
2014-10-22 21:32:48
阅读次数:
191
Nginx 是多进程模式的,一个 master 与多个 workers,一般工作在多核 CPU 上,所以自旋锁就是必须用到的。Nginx 中的自旋锁的定义,位于 ngx_spinlock.c 中,如下:voidngx_spinlock(ngx_atomic_t *lock, ngx_atomic_i...
分类:
其他好文 时间:
2014-10-22 17:42:02
阅读次数:
232
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。 dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。Java代码 /*!*@functiondispatch_g...
分类:
移动开发 时间:
2014-10-22 09:56:46
阅读次数:
158
GCD简介GCD全称Grand Central Dispatch,可翻译为“牛逼的中枢调度器”。纯C语言,提供了非常多强大的函数。GCD优势:GCD是苹果公司为多核的并行运算提出的解决方案。GCD会自动利用更多的CPU内核(比如双核、四核)。GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线...
分类:
移动开发 时间:
2014-10-21 19:36:59
阅读次数:
249
很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。0.Java 中多线程同步是什么?在多线程程序下...
分类:
编程语言 时间:
2014-10-20 17:02:47
阅读次数:
354
http://www.vaikan.com/use-multiple-cpu-cores-with-your-linux-commands/你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有一个4核或更多核的C...
分类:
系统相关 时间:
2014-10-19 12:57:50
阅读次数:
292
GIL 与 Python 线程的纠葛GIL 是什么东西?它对我们的 python 程序会产生什么样的影响?我们先来看一个问题。运行下面这段 python 程序,CPU 占用率是多少?# 请勿在工作中模仿,危险:)def dead_loop(): while True: passd...
分类:
编程语言 时间:
2014-10-18 22:09:22
阅读次数:
327
在多核系统中,会存在多个CPU核竞争同一资源的情形,这就必须有一些机制来保证在竞争中不会出现错误,即同步互斥机制。这里主要针对同步互斥原语之一的自旋锁进行一点分析和记录。上图为一个多核系统的中断部分,很显然中断部分会存在许多竞争相关问题。自旋锁(Spinlock) 自旋锁是用来在多处理器环境...
分类:
其他好文 时间:
2014-10-18 16:47:22
阅读次数:
650
原文链接最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解...
分类:
其他好文 时间:
2014-10-18 11:04:51
阅读次数:
232