Linux
Xiyou_sky
Hello world!
展开
-
手写chmod
在写chmod之前先补上了之前的一个遗漏知识点,“主函数的参数”,主函数是可以有参数的,之前也知道但是没有去了解过。 主函数的参数 main(int argc,char **argv) 主函数的参数大体来说有两个,也有三个的算是扩展的的吧,第一个是参数的个数(arguments counter)表示的是参数的个数比如./chmod 745 repeat.c argc就是3,分别是./chm...原创 2019-06-20 12:16:44 · 152 阅读 · 0 评论 -
线程池
线程池是什么? 所谓线程池就是一个池子,池子里面充满线程,这些线程处于阻塞状态,当有任务需要创建线程执行的时候,会唤醒线程池中的一个线程,被唤醒的线程执行当这个任务,执行完后,又回到线程池阻塞,等待下次唤醒。等待执行的任务会形成任务队列,任务多于线程的时候(就是说线程不够用的时候),按照一定的次序出队,再交由线程执行。 为什么需要线程池? 试想这样一个情景,单个任务处理事件很短,但是请求数目很大很...原创 2019-07-31 15:48:31 · 209 阅读 · 0 评论 -
为什么有了互斥锁还要条件变量?
互斥锁和条件变量所解决的问题不同,应用的场景不同,就好比有了火车为什么还要有飞机,二者面向的问题不同。 互斥锁主要用来共享资源上 而条件变量主要用来在满足条件时通知线程 互斥锁 线程中有的资源是共享的,那么如果两个线程同时对一个变量做修改就会有一个先后问题,如果访问顺序处理不当,程序的逻辑可能就会受影响,比如下面这个程序,两个线程同时修改number的值,那么number最后的值是多少?可...原创 2019-07-26 16:10:05 · 545 阅读 · 1 评论 -
多线程虚假唤醒
在线程池中线程基于条件变量阻塞的时候有这样一个操作 //无任务状态和不销毁时,线程阻塞等待 while(pool->cur_queue_size == 0 && pool->shutdown != 1) { /* printf("线程[0x%lx]正在等待\n",pthread_self()); *...原创 2019-08-01 22:11:25 · 293 阅读 · 0 评论 -
makefile入门
这篇博客将从最简单的makefile讲起,通过不断升级,最后成为项目中常用的makefile文件。 文章目录入门效果预览语法浅析进阶再进阶终极版本题外话 入门 效果预览 1.一个最简单的输出"Hello world"的hello.c文件,内容如下: #include <stdio.h> int main() { printf("Hello world\n"); r...原创 2019-08-27 23:53:37 · 232 阅读 · 0 评论