在Linux C/C++编程中,有时我们需要某个文件同时只能被一个进程打开,那么此时我们就需要多此文件进行加锁,系统中提供了两个函数来对文件加锁 flock()和fcntl(),本文主要讲解flock()的使用及其它的一些限制。...
分类:
系统相关 时间:
2014-06-19 12:38:06
阅读次数:
347
Infinite Iterators:
Iterator
Arguments
Results
Example
count()
start, [step]
start, start+step, start+2*step, ...
count(10) --> 10 11 12 13 14 ...
cycle()
p
p0, p1, ......
分类:
编程语言 时间:
2014-06-19 11:14:58
阅读次数:
359
在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno,如socket(), bind(), accept(), listen()。erron存放一个正整数来保存上次出错的错误值。
对线程而言,每个线程都有专用的errno变量,不必考虑同步问题。
慢系统调用
指可能永远阻塞而无法返回的系统调用,通常是一些读写的例子,如pipe,终端设备,网络连接,典...
分类:
系统相关 时间:
2014-06-19 10:35:23
阅读次数:
337
Linux & Mac curl 命令行使用——POST&GET...
分类:
系统相关 时间:
2014-06-19 09:42:02
阅读次数:
754
我感觉学习操作系统首先要从内存分配和管理入手。首先我们应该知道现代操作系统是以页为单位进行内存管理的,32位体系结构支持4KB的页,而64位体系结构支持8KB的页。页是用来分配的,如何才能进行高效和充分的利用,这是内存管理单元(MMU)应当仔细考虑的。...
分类:
系统相关 时间:
2014-06-16 12:31:45
阅读次数:
259
相对于使用进程实现并发,用线程的实现更加轻量。每个线程都是独立的逻辑流。线程是CPU上独立调度运行的最小单位,而进程是资源分配的单位。当然这是在微内核的操作系统上说的,简言之这种操作系统的内核是只提供最基本的OS服务,更多参看点击打开链接
每个线程有它自己的线程上下文,包括一个唯一的线程ID(linux上实现为unsigned long),栈,栈指针,程序计数器、通用目的寄存器和条件码,...
分类:
编程语言 时间:
2014-06-16 12:28:38
阅读次数:
296
首先是fork()函数,比较清晰的解释可以参考http://blog.csdn.net/lingdxuyan/article/details/4993883和http://www.oschina.net/question/195301_62902...
分类:
系统相关 时间:
2014-06-16 12:19:31
阅读次数:
248
linux下Oracle11g RAC搭建(三)
二、配置安装环境 (node1、node2)
建立组、用户、目录并修改权限(node1、node2)
node1上建立组、用户、初始密码
建立组:#groupadd [-g] [gid] [组名]
建立用户:#useradd [-u] [uid] [ -g][ 用户的主组] [ –G] [用户的副组] [用户名]
执行脚本:#...
分类:
数据库 时间:
2014-06-16 12:08:10
阅读次数:
424
进程线程分配方式
简述下常见的进程和线程分配方式:(好吧,我只是举几个例子作为笔记。。。并发的水太深了,不敢妄谈。。。)
1、进程线程预分配
简言之,当I/O开销大于计算开销且并发量较大时,为了节省每次都要创建和销毁进程和线程的开销。可以在请求到达前预先进行分配。
2、进程线程延迟分配
预分配节省了处理时的负担,但操作系统管理这些进程线程也会带来一定的开销。由此,有个折中的方法是,当某个...
分类:
编程语言 时间:
2014-06-16 11:45:38
阅读次数:
480
问题
删除一个字符串中连续超过一次的空格。
解决(Python)
#! /usr/bin/env python
#coding:utf-8
def del_space(string):
split_string = string.split(" ") #以空格为分割,生成list,list中如果含有空格,则该空格是连续空格中的后一个
string_list =...
分类:
其他好文 时间:
2014-06-16 11:21:52
阅读次数:
204