2018年7月21日

open和close函数

摘要: open函数的使用 调用open函数可以打开或创建一个文件 #include <sys/stat.h> #include <fcntl.h> #include <sys/types.h> int open(const char *pathname, int flags); int open(cons 阅读全文

posted @ 2018-07-21 17:52 tianzeng 阅读(2600) 评论(0) 推荐(0) 编辑

2018年7月19日

gdb调试多线程多进程

摘要: 多线程 1、info threads: 这条命令显示的是当前可调试的所有线程,GDB会给每一个线程都分配一个ID。前面有*的线程是当前正在调试的线程。 2、thread ID: 切换到当前调试的线程为指定为ID的线程。 3、thread apply all command: 让所有被调试的线程都执行 阅读全文

posted @ 2018-07-19 11:28 tianzeng 阅读(4315) 评论(0) 推荐(0) 编辑

2018年7月15日

Posix信号量

摘要: 提供不同进程间或给定的一个特定进程的不同线程间的同步手段。 Posix有名信号量,由IPC名字标识,通常指代文件系统中的某个文件,但不要求真正存放在文件系统的某个文件中(如果信号量的实现用到了映射文件);随内核持续,可用于进程或线程间的同步 Posix基于内存的信号量,放在共享内存中,同步多线程时, 阅读全文

posted @ 2018-07-15 18:36 tianzeng 阅读(544) 评论(0) 推荐(0) 编辑

2018年7月14日

记录上锁(fcntl)

摘要: 它是唯一一个进程终止时内核自动清理的同步锁。这是一种读写锁的扩展类型,他可用于有亲缘关系或无亲缘关系的进程之间共享某个文件的读或写,被锁住的文件通过文件描述符访问,执行上锁的操作时fcntl,这种类型的锁通常在内核中维护,其属主是由属主的进程ID标识,这就说明了锁可用于不同进程之间上锁,而不是统一进 阅读全文

posted @ 2018-07-14 19:09 tianzeng 阅读(1508) 评论(0) 推荐(0) 编辑

posix对线程的调整

摘要: fork 当多线程进程调用fork创建子进程时,从fork返回时,只有调用fork的线程在进程内存在(其他线程在子进程中不存在,好比调用pthread_exit退出,不再拥有私有数据destructors或清除处理函数),其他线程状态仍保留为与调用fork时相同的状态。在子进程中,线程在与父进程中有 阅读全文

posted @ 2018-07-14 16:15 tianzeng 阅读(291) 评论(0) 推荐(0) 编辑

2018年7月10日

MySQL创建存储过程

摘要: SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要 阅读全文

posted @ 2018-07-10 12:02 tianzeng 阅读(520) 评论(0) 推荐(0) 编辑

2018年7月8日

MySQL的WHERE语句中BETWEEN与IN的用法和他们的区别

摘要: MySQL BETWEEN 用法 not可以对between...and取反。 1.数值型 BETWEEN 运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围。BETWEEN 同 AND 一起搭配使用,语法如下: WHERE column BETWEEN value1 AND value 阅读全文

posted @ 2018-07-08 11:46 tianzeng 阅读(116093) 评论(0) 推荐(5) 编辑

2018年7月7日

mysql中distinct

摘要: 1.Distinct 位置 单独的distinct只能放在开头,否则报错,语法错误,与其他函数使用时候,没有位置限制如下 Select player_id,count(distinct(task_id))from task; 这种情况下是正确的,可以使用。 2.Distinct用法 a.在count 阅读全文

posted @ 2018-07-07 19:06 tianzeng 阅读(2963) 评论(0) 推荐(0) 编辑

2018年6月29日

线程的工作方式-流水线

摘要: 流水线工作方式的图示 流水线中线程,线程队列对每个输入进行处理,一个阶段的线程处理完成后,将会把数据交给下一阶段的线程。最后一阶段的线程产生输出结果。 如果前一阶段处理的速度高于下一阶段的线程,可以使用缓冲区作为使其同步工作的手段。 阅读全文

posted @ 2018-06-29 15:54 tianzeng 阅读(814) 评论(0) 推荐(0) 编辑

2018年6月23日

可执行程序的生成过程

摘要: 我们通常编写的文本程序是由ASCII字符组成,但是一个可执行程序是由二进制数字组成,从ASCII——>二进制文件,经历了 预处理:进行头文件和宏定义的替换 编译:由编译器把高级语言代码编译为汇编代码 汇编:由汇编器把汇编代码翻译成二进制代码,也即是.o文件 连接:由连接器把多个.o文件连接成可执行文 阅读全文

posted @ 2018-06-23 16:05 tianzeng 阅读(4528) 评论(0) 推荐(0) 编辑

导航