- 博客(12)
- 收藏
- 关注
原创 哈希表(开散列)
HashOpen.h#pragma once #include<stddef.h> size_t HashMaxSize=1000; typedef int KeyType; typedef int ValType; typedef size_t (*HashFunc)(KeyType key); typedef struct HashElem...
2018-06-19 21:49:14 394
原创 哈希表闭散列(代码实现)
HashClose.h#pragma once #include <stddef.h> size_t HashMaxSize=1000; typedef enum Stat { Empty, Valid, Invalid // 当前元素被删除了 } Stat; typedef int KeyType; typedef int ValType;...
2018-06-19 21:45:27 416
原创 守护进程
#include <unistd.h>pid_t setsid(void); //创建一新的Session并且自己成为Session的Leader。该函数调用成功时返回新创建的Session的id(也就是当前进程的ID),出错返回-1;调用这个函数之前,当前进程不允许是进程组的leader否则会出错返回-1.、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、...
2018-06-15 15:01:14 231
原创 进程组、作业、会话与守护进程
1.进程组 每个进程除了有一个进程ID外,还属于一进程组。通常进程组与作业相关联,可以收到同一终端的各种信号。 每个进程有唯一的一个进程组ID。 组长进程可创建一个进程组,创建该组中的进程,然后终止。 只要在某一个进程组中的一个进程存在,该进程组就存在,这与其组长进程是否终止无关。 2.作业 作业与进程组的区别:1.如果作业中某个进程创建了子进程,则该子进程属于进程组成员但不...
2018-06-15 12:18:45 321
转载 线程死锁
死锁的概念 死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。 死锁的必要条件 虽然线程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件。 1)互斥条件:指线程对所分配到的资源进行排它性使用,即在一段时间内某资源只...
2018-06-14 21:51:25 174
原创 gdb调试多线程
gdb与多线程 在多线程编程时,当我们需要调试时,有时需要控制某些线程停在断点,有些线程继续执行。有时需要控制线程的运行顺序。有时需要中断某个线程,切换到其他线程。这些都可以通过gdb实现。 下面是gdb常用的功能: info threads:显示可以调试的所有线程。gdb会为每个线程分配一个ID(和tid不同),编号一般从1开始。后面的ID是指这个ID。 thread ID:...
2018-06-14 21:36:41 217
原创 生产者消费者模型 、POSIX信号量、读写锁
生产者消费者模型 、POSIX信号量、读写锁 相关代码 1. 生产者消费者模型 列表内容 2.POSIX信号量 列表内容 3.读写锁 列表内容
2018-06-14 21:31:47 338
原创 生产者---消费者 、 读 者-----写者 模型相关代码实现
producter_consumer_model.c #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<pthread.h> #define CONSUMERS_COUNT 8 #define PRODUCERS_COUNT 8 pthread_cond_t con...
2018-06-14 21:19:47 297
原创 pthread 函数中create、join 、detach的代码实现和运行结果
create.c#include<stdio.h> #include<unistd.h> #include<pthread.h> void* Entry1(void* arg) { (void)arg; while(1) { printf("hello world1!\n"); sleep(1); } retu...
2018-06-09 20:52:41 387
原创 线程
线程 1.线程的定义 在一个程序里的一个执行路线就叫做线程,或者说:“一个进程内部的控制序列就是线程。” 2.进程和线程的区别 进程是资源竞争的基本单位,线程是程序执行的最小单位。 在一个进程内的线程共享进程的 正文段和数据段,也就是定义一个函数,在各个线程中个都可以调用,如果定义一个全局变量, 在各线程中都可以访问到。 除此之外,线程还共享以下资源和环境:文件描述符表、每种信号...
2018-06-08 18:44:17 307
转载 gdb调试多进程
别人的文章,先复制下,等我有一定理解之后,再做总结。我们先看看我们的测试程序:/* in eg1.c */int wib(int no1, int no2){ int result, diff; diff = no1 - no2; result = no1 / diff; return result;}int main(){ p...
2018-06-05 19:01:29 241
原创 进程信号
信号的概念每个信号都有一个编号和一个宏定义的名称,这些宏定义可以在signal.h中找到。kill -l普通信号 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIG...
2018-06-01 16:50:17 253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人