简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。...
分类:
编程语言 时间:
2014-07-22 23:14:34
阅读次数:
509
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 1)
数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 2)
Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。在启动Oracle数据库服务器时,实际上是在服务器...
分类:
数据库 时间:
2014-05-09 18:29:42
阅读次数:
449
联合体union
当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的:
1)联合体是一个结构; 2)它的所有成员相对于基地址的偏移量都为0; 3)此结构空间要大到足够容纳最"宽"的成员;4)其对...
分类:
编程语言 时间:
2014-05-09 11:25:55
阅读次数:
409
nginx的slab分配器主要和共享内存(nginx自己实现的共享内存 采用mmap或者shm实现)一起使用,Nginx在解析完配置文件,把即将使用的共享内存全部以list链表的形式,对共享内存进行管理和划分。在nginx_cycle.c中
static ngx_int_t
ngx_init_zone_pool(ngx_cycle_t *cycle, ngx_shm_zone_t *zn)
{
...
分类:
其他好文 时间:
2014-05-07 08:18:53
阅读次数:
361
fork两次然后在孙子进程中调用某函数避免孙子进程被kill掉产生僵尸进程 /*
这样做儿子进程很快就会退出,所以孙子进程不太可能产生僵尸进程,即使产生时间也极其短暂 */#include #include #include void
fork_grandson_run(void func(void...
分类:
其他好文 时间:
2014-05-05 22:13:00
阅读次数:
445
OpenMP是一种应用程序接口(API),支持多平台共享内存的C/C++/Fortran多处理器编程,可以运行在绝大多数处理器架构和操作系统上,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X和Windows平台。它由编译器指令集、库函数和环境变量组成,影响运行时行为。...
分类:
移动开发 时间:
2014-04-29 13:44:23
阅读次数:
550
代码来自于这里
https://code.google.com/p/stanford-cs193g-sp2010/source/browse/trunk/tutorials/sum_reduction.cu...
分类:
其他好文 时间:
2014-04-29 13:13:20
阅读次数:
324
说起共享内存,一般来说会让人想起下面一些方法:1、多线程。线程之间的内存都是共享的。更确切的说,属于同一进程的线程使用的是同一个地址空间,而不是在不同地址空间之间进行内存共享;2、父子进程间的内存共享。父进程以MAP_SHARED|MAP_ANONYMOUS选项mmap一块匿名内存,fork之后,其...
分类:
系统相关 时间:
2014-04-28 12:30:07
阅读次数:
720