- 博客(14)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 第十一章 线程之锁、读写锁、条件变量、屏障
函数 pthread_mutex_timelock 可以给线程指定一个超时时间。 当试图获得一个已经加锁的互斥量时,阻塞等待达到超时时间后返回错误码 ETIMEOUT读写锁 与互斥量相似,但是允许更高的并行性 互斥量: 要么是锁住,要么没锁住,而且只有一个线程可以对其加锁 读写锁: 有3种状态,即 读模式下的加锁状态,
2015-01-29 17:25:26 568
原创 如何使用 c++ stl 中的 map 以及红黑树 (一)
Two SumGiven an array of integers, find two numbers such thatthey add up to a specific target number.The function twoSum should return indices of the twonumbers such that they add up
2015-01-28 20:19:54 8018 2
原创 第十一章(二) 线程锁的使用
线程同步 当一个线程可以修改的变量,其他线程也可以读取或者修改的时候,我们就需要对这些线程进行同步,确保它们访问变量的存储内容时不会访问到无效的值。互斥量 可以使用pthread的互斥接口来保护数据,确保同一时间只有一个线程访问数据 互斥变量是用 pthread_mutex_t数据类型表示的。 在使用互斥变量之前,需要对它进行初始化,将其设置
2015-01-28 18:21:04 624
原创 第十一章 线程(一)
这里首先提一下,并发和并行有什么区别: 并行是指在同一时刻,有多条指令在多个处理器上同时执行。 并发是指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。 线程的概念: 典型的UNIX进程可以看成是一个线程,通过使用线程可以把进程设计成在某一时刻能够不止做一件事。 1、通过为每种
2015-01-27 17:04:29 419
原创 第十章(二) sigsuspend、system等重要信号函数的使用
函数 sigsuspend(sigset_t *mask) 1、之前说过,更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞,这可以用来保护不希望由信号中断的代码临界区 2、如果希望对一个信号解除阻塞,然后pause以等待以前被阻塞的信号发生,如何实现呢? 若是直接 sigprocmask(); pause(); 这样可能会导致pause
2015-01-25 21:25:35 805 2
原创 算法复习 -------------------- 0、零零零零零
本来也写了好些字,但最后想想无非是为以后坚持不下去找借口。 索性随便写两句,坚持不坚持的下去完全没有必要苛责,这都是自己的选择,做了就要承担责任,就别说后悔。 自己的苦始终自己吃。无论是因为过去还是将来。
2015-01-22 20:11:35 513
原创 第十章 信号
当某个信号出现时,可以告诉内核按下列3种方式处理: 1、忽略此信号。 但是 SIGKILL 和 SIGSTOP 是不能被忽略的 2、捕捉信号 通知内核在某种信号发生时,调用一个用户函数 但是不能捕捉 SIGKILL 和 SIGSTOP 信号。 3、执行系统默认动作函数 signal
2015-01-21 21:08:08 622
原创 关于守护进程
守护进程 守护进程就是后台运行的一种特殊进程。它独立于控制终端且周期性的执行某种任务或等待处理某些发生的事件 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的特性:
2015-01-20 16:13:30 474
原创 第九章 进程关系
第九章、 进程关系如果用户正确登录, login程序就完成以下工作: 将当前工作目录更改为用户的起始目录(chdir) 调用 chown 更改获得终端的所有权,使登录用户成为它的所有者 将对该终端的设备的访问权限改变成 “用户读和写” 调用 setgid 和 initgroups 设置进程的组ID
2015-01-19 19:38:14 635
原创 第八章(三) 进程调度、进程时间
解释器文件 这种文件起始行形式是: (是那种脚本文件吗? 就是 .sh 结尾的?) #!pathname [optional-argument] 内核使调用 exec 函数的进程实际执行的并不是该解释器文件,而是在该解释器文件第一行中 pathname 所指定的文件。 注意一定要将解释器文件(即文本文件,它以 #
2015-01-16 16:54:06 550
原创 第八章(二) exec系列函数 和 进程的几个ID的认识
竞争条件 这里书本只是提了一些,但并未详细讲解如何实现,具体可以根据之后要学的信号量机制 和 管道机制实现。 这里的程序里还有个细小的知识点: setbuf(stdout,NULL) 即将输出缓冲关闭了。函数 exec 之前对这个的理解就是在进程fork后调用,是会覆盖fork出来的程序段的。除了环境变量、打开的文件描述符
2015-01-15 14:15:16 739
转载 linux下find,xargs命令详解和实例
本文转自 http://world77.blog.51cto.com/414605/209125在我们平时的系统管理中,查找文件是时常需要的一个操作,在Linux系统中有2个命令是必须要掌握的,如果我们真正掌握了这个命令已经他的常用参数的话,我们可以在工作中游刃有余,下面是我在网上找到的一点资料,这些天放假有空,整理出来给大家共享下,附件是压缩的源文件,希望大家喜欢,愿和大家一起进步。
2015-01-14 15:38:58 5902
原创 第八章(一) 进程控制
函数 fork ,子进程与父进程#include int globvar = 6;char buf[] = "a write to stdout"; int main(){ intvar; pid_tpid; var= 88; if(write(STDOUT_FIL
2015-01-07 17:45:40 560
原创 第七章 进程环境
第七章 进程环境关于 main 函数: 当内核执行C程序时,在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址 --- 这是由连接编辑器设置的,而连接编辑器则是由C编译器调用。 启动例程从内核取得命令行参数和环境变量值,然后为按上述方式调用main函数做好安排。一个进程的终止也分为好几种情况:
2015-01-03 17:12:12 568
linux下编程 ,关于信号sigaction中的sa_flags ,一些改变却不起作用
2014-11-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人