kmalloc函数的内幕
不对所获取的内存空间清零分配的区域在物理内存中也是连续的flags参数
GFP_KERNEL
在空闲内存较少时把当前进程转入休眠以等待一个页面分配内存的函数必须是可重入的
GFP_ATOMIC
用于在中断处理例程或其他运行于进程上下文之外的代码中分配内存,不会休眠
GFP_USER
用于为用户空间页分配内存,可能会休眠
GFP_...
分类:
系统相关 时间:
2014-09-28 12:14:31
阅读次数:
291
??
1信号产生原因
2.进程处理信号行为
manpage里信号3中处理方式:
SIG_IGN
SIG_DFL
默认Term动作
a signal handling function
进程处理信号
A默认处理动作
term
中断...
分类:
其他好文 时间:
2014-09-21 02:33:36
阅读次数:
295
又到周五了,日子过的好快。线程默认情况下都是前台线程,所有的前台线程退出后程序才会推出。进程中默认的线程叫主线程或者UI线程。只要有一个前台线程在运行,应用程序进程就在运行,如果多个前台线程在运行,而Main方法结束了,应用程序进程仍然是激活的,直至所有的前台线程完成。线程重入:多个线程访问同一资源...
分类:
编程语言 时间:
2014-09-12 23:18:44
阅读次数:
252
无锁算法CAS概述 JDK5.0以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent包中,是专门用于多线并发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发应用程序。主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的支持。 .....
分类:
其他好文 时间:
2014-09-11 16:43:12
阅读次数:
256
Delphi的线程可以通过调用AThread.Synchronize(AProc),可以将Proc放入主线程中同步运行,此时AThread将挂起,直到主线程执行完AProc。如果有BThread,调用了BThread.Synchronize(BProc),而BProc中释放了AThreadproce...
分类:
编程语言 时间:
2014-09-10 22:18:51
阅读次数:
214
volatile既然不足以保证数据同步,那么就必须要引入锁来确保。互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进行竞争。对于java开发人员,我们最熟悉的肯定就是用synchronized关键词完成锁功能,在涉及到多线程并发时,对于一些变量,你应该会毫不犹豫地加上synchronized去保证变...
分类:
其他好文 时间:
2014-09-05 19:58:11
阅读次数:
204
实现效果就是,双击单元格修改之后,数据要及时更新到数据库,然后把更新后的数据重新绑定到控件中,但是在重新绑定数据的时候会报错,错误信息为:原因是它导致对
SetCurrentCellAddressCore 函数的可重入调用。通过网上搜索,用BeginInvoke解决了这个异常。
public delegate void MyInvoke();
public void DoWor...
分类:
其他好文 时间:
2014-09-04 19:13:30
阅读次数:
205
不多解释,预防普通锁不正规的获取与释放#!/usr/bin/env python# -*- coding: utf-8 -*-import threadingimport timeclass MyThread(threading.Thread): def run(self): g...
分类:
编程语言 时间:
2014-09-04 19:00:19
阅读次数:
201
分析问题 所谓的方法重入,是一个有关多线程编程的概念。程序中多个线程同时运行时,就可能发生同一个方法被多个线程同时调用的情况。当这个方法中存在一些非线程安全的代码时,方法重入就会导致数据不一致的情况,这是非常严重的Bug。 在前文中,笔者已经简要介绍了.NET的内建定时器类型,它们是: 1、S...
分类:
Web程序 时间:
2014-08-25 16:48:24
阅读次数:
201