博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复习linux进程和线程
阅读量:5152 次
发布时间:2019-06-13

本文共 1445 字,大约阅读时间需要 4 分钟。

     最近这段时间,主要做linux下的网络编程。但是已不是以前的那种简单的sockent通信,已经设计到定协议,定接口,几个人共同合作,然后到最后再一起调试。

  经过这段时间的敲代码,我也学到很多东西。首先是学会协同合作,几个人一起编,那么久必须先把接口定好,这样到最后才可以合起来。这两天我也体验了联调程序,第一天调试到晚上11点半,第二天调试到晚上1点。程序不是一个人跑通了就好了,得大家联合起来一起跑通才能正在的起作用。很好,学习了。联调结束后,终于可以放松放松了。今天我也来温故一下以前看的线程和进程的知识,以前也看过一个次,但是到自己用过之后,再来看一遍,那么印象就会更加深刻。对了,还有一点,前段时间我在写程序的时候,遇到问题每次找F哥,他都能耐心的解答,每次和我一起分析问题并总能把问题解决。我觉得每次把问题解决之后,他一定也能学到很多的东西,同时也锻炼了分析问题、解决问题的思路,这很重要。所以以后不管谁有问题要问我,我也应该尽自己的所能去给别人解决,这样自己也学到很多东西。

 

进程

  进程是处于动态条件下由操作系统维护的系统资源管理实体。

  一、进程的创建方式:

    1.fork():进程复制,只有进程号和内存与父进程不一样,其他与父进程共享。

    2.system():调用shell的外部命令在当前进程中开始另一个进程,会阻塞当前进程直到命令执行完毕,可以直接调用shell命令。

    3.exec()系列函数:用新进程代替原有的进程,系统会从新的进程运行,新的进程的PID值与原来进程的PID值相同。exec函数执行成功后不会返回。使用exec()函数比              较普遍的一种方法是先使用fork()函数分叉进程,然后在新的进程中调用exec函数,这样exec会占用与原来一样的系统资源来运行。

  二、进程间通信和同步

    1.管道:int pipe(int filedes[2]); 得到两个文件描述符来保存管道。filedes[0]是为了读操作而创建和打开的。filedes[1]是为了写操作而创建打开的。读进程要把写端关         闭,写进程要把读端关闭。

    2.命名管道(fifo)

    3.消息队列:这个不知道重不重要,但是貌似很复杂的样子,到时再回头把这看看吧。

    4.信号量:貌似进程的信号量也很复杂,没看。

    5.共享内存:没看。。。

线程  

   一、线程创建和推出

      pthread_create(),pthread_join(),pthread_exit().到具体用的时候查就好了。

   二、线程间互斥---互斥锁

      pthread_mutex_init(),pthread_mutex_lock(),pthread_mutex_unlock().

   三、线程中的信号量 sem。信号量实际上是一个非负的整数计数器,用来实现对公共资源的控制。

      sem_init():创建信号量并初始化

        sem_post():增加信号量的值

        sem_wait():减少信号量的值

       sem_destroy():释放信号量

 

明天深入学习linux socket编程,并做总结。

转载于:https://www.cnblogs.com/Jason-Damon/archive/2013/04/10/3010979.html

你可能感兴趣的文章
校门外的树2 contest 树状数组练习 T4
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
runtime的基本应用
查看>>
关于scrollTop的那些事
查看>>
Caroline--chochukmo
查看>>
算法导论笔记 第8章 线性时间排序
查看>>
利用jquery的contains实现搜索功能
查看>>
Xcode 6.2 beta 3 太难下载!下载了,不敢独享
查看>>
并发编程
查看>>
Bootstrap
查看>>
C语言错误: HEAP CORRUPTION DETECTED
查看>>
【Java基础】Java类的加载和对象创建流程的详细分析
查看>>
2018-2019-1 20165231《信息安全系统设计基础》第二周学习总结
查看>>
iOS之文本属性Attributes的使用
查看>>