自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除