FixTheCoder

猿,改变世界的动物!

Linux 线程-条件变量

#include <cstdio> #include<pthread.h> #include <iostream> #include<unist...

2018-09-04 09:49:46

阅读数 13

评论数 0

Linux 读写锁

1.读写锁是几把锁 一把锁 pthread_rwlock_t lock; 2.读写锁的类型 读锁 - 对内存做读操作 写锁 - 对内存做写操作 3.读写锁的特性 线程A加读锁成功,又来了三个线程,做读操作,可以加锁成功 线程A加写锁成功,又来了三个线程,做读操作,三个线...

2018-09-04 09:49:03

阅读数 24

评论数 0

Linux 线程-互斥锁(一)

1.互斥锁概念:        在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。 2.常用函数 互斥锁参数类型 -- pthread_mut...

2018-08-22 10:47:27

阅读数 110

评论数 0

Linux 多线程

1.创建线程 -- pthread 表头文件  #include <pthread.h> 定义函数 int pthread_create(pthread_t * thread, pthread_attr_...

2018-08-16 11:29:02

阅读数 26

评论数 0

Linux 进程间通信(二)

4.mmap-创建内存映射区 作用:将磁盘文件的数据映射到内存,用户通过修改内存就能 修改磁盘文件 表头文件 #include <unistd.h> #include <sys/mman.h&a...

2018-08-14 14:02:24

阅读数 27

评论数 0

Linux 进程间通信(一)

1.IPC      进程间通信    interProcess Communication 2.管道(匿名) 1)管道的概念 本质:内核缓冲区 伪文件:不占用磁盘空间 特点 两部分: 读端,写端,对应两个文件描述符 数据写端流入,读端流出 操作管道的进程被销...

2018-08-14 09:00:03

阅读数 22

评论数 0

Linux 进程控制(三)

3.exec函数族 1)exec函数族 让父子进程执行不相干的操作 能够替换进程地址空间中的源代码.txt段    #include<unistd.h> #include<sys/types.h> #i...

2018-08-13 11:03:20

阅读数 20

评论数 0

Linux 进程控制(二)

2.进程控制 1)进程控制 fork     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。     一个进程调用fork()函数后,...

2018-08-13 09:15:53

阅读数 21

评论数 0

Linux 进程控制(一)

1.进程相关概念 1)程序和进程 程序:二进制文件,占用的磁盘空间 进程:启动的程序 所有的数据都在内存中 需要占用更多的系统资源 cpu,物理内存 2)并行和并发 计算机操作系统对于并发性和并行性的概念给出的定义是: 并行性是指两个或多个事件在同一时刻发生;  并发性...

2018-08-10 16:17:43

阅读数 136

评论数 0

Linux 文件I/O

1.open/close open 表头文件 #include<sys/types.h> #include<sys/stat.h> #include<...

2018-08-10 13:18:50

阅读数 31

评论数 0

GDB调试

1.gcc a.c b.c c.c -o app  -g      -g:会保留函数名和变量名 2.启动gdb   gdb 可执行程序的名字    gdb app  给程序传参:set args xxx xxx   3.查看代码 --list 当前文件: l l 行号 l ...

2018-08-09 15:21:26

阅读数 17

评论数 0

makefile

1.make  gcc - 编译器 make - Linux自带的构建器 构建的规则在makefile中 2.makefile 文件的命名   -makefile   -Makefile 3.makefile 中的规则 gcc a.c b.c c.c -o app 三部分: 目...

2018-08-09 13:27:20

阅读数 17

评论数 0

c/c++ 静态库与动态库

链接库 二进制文件 将源码转换成二进制格式的源代码 加密 使用 头文件 制作出的库 静态库 命名规则:libtest.a lib xxx -库的名字 .a 制作步骤: 源代码.c.cpp 将.c文件生成.o gcc a.c b.c -c 将.o打包...

2018-08-08 15:07:24

阅读数 24

评论数 0

gcc 常用参数

gcc工作流程 预处理  -E(宏替换,头文件展开,注释去掉,xxx.c -> xxx.i) 编译     -S  (xxx.i>xxx.s  汇编文件) 汇编     -c   (xxx.s->xxx.o 二进制文件)   ...

2018-08-08 13:53:28

阅读数 20

评论数 0

leetcode  计数质数

  统计所有小于非负整数 n 的质数的数量。 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。   思路 判断从2~n质数的数量返回,核心算法转换为判断一个数是否为质数。 质数定义:质数定义为在大于1的自然数中,除了...

2018-08-07 11:27:41

阅读数 40

评论数 0

leetcode 第一个错误的版本

你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bo...

2018-08-06 15:14:31

阅读数 54

评论数 0

leetcode 二叉树

 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ ...

2018-08-06 14:31:25

阅读数 20

评论数 0

leetcode 链表(删除节点、反转、合并、回文、环形)

删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9 ...

2018-08-06 08:19:42

阅读数 52

评论数 0

leetcode 字符串转整数(atoi)

实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串可以在形...

2018-08-03 09:25:25

阅读数 28

评论数 0

leetcode 旋转图像

给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]...

2018-08-02 14:22:40

阅读数 26

评论数 0

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