- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 进程间5中通信方式比较
消息缓冲可以不再局限于父子进程,而允许任意进程通过共享消息队列来实现进程间通信,并由系统调用函数来实现消息发送和接收之间的同步,从而使得用户在使用消息缓冲进行通信时不再需要考虑同步问题,使用方便,但是信息的复制需要额外消耗CPU的时间,不适宜于信息量大或操作频繁的场合。共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存。
2024-11-26 15:32:37
612
转载 Socket套接字的使用
不难想象,我们需要写两个源程序,一个是基于客户端,一个是基于服务端,其中,我们对服务端进行封装,客户端,我们就不进行封装了,此外我们还创建一个文件用于日志打印,一个文件记录错误码,因此我们需要如下文件;当我们学习完上面接口后,我们还有一个问题没有解决,我们在进行网络传输时,我们可能需要考虑大小端等问题,因为我们在进行网络传输时,我们无法得知对端机器时大端还是小端,因此我们需要执行一个统一策略,因此诞生了我们的网络字节序,我们统一使用大端作为网络字节序;实际数据传输时,我们通常转换成整型,再转换成网络序列;
2024-09-20 14:31:00
260
转载 一 什么是套接字
套接字(Socket)是计算机网络通信中的一个基本概念,它是一种抽象的数据结构,用于在网络应用程序之间提供通信接口。套接字可以看作是一个端点,用于发送和接收数据。它使得运行在不同机器上的应用程序能够交换信息,从而实现网络功能。套接字的概念最早由Unix系统的开发者比尔·贝宁顿(Bill Joy)在1983年引入。套接字API最初是为了提供一个统一的接口,以便程序员可以轻松地编写网络应用程序,而无需深入理解网络协议的复杂性。
2024-09-20 14:25:05
159
转载 套接字的地址结构,IP地址转换函数,网络编程的接口
通常,人们习惯用点分十进制字符串表示 IPV4 地址,但编程中我们需要先把它们转化为整数方能使用,下面函数可用于点分十进制字符串表示的IPV4 地址和网络字节序整数表示的 IPV4 地址之间的转换。套接字用地址作为它的名字,地址的格式随域(又被称为协议族,protocol family)的不同而不同,每个协议族又可以使用一个或多个地址族来定义地址格式,sa_family_t sin_family;sockfd 是网络套接字描述符,(命名套接字,就是上面的函数的返回值作为了我们的参数sockfd)
2024-09-14 12:44:15
214
转载 套接字(setsockopt 选项设置
1 setsockopt 函数介绍Windows套接字(Winsock)的 setsockopt 函数是用于设置套接字选项的重要工具。通过这个函数,开发者可以调整套接字的行为,以满足特定的网络应用需求。(1)函数原型int setsockopt( SOCKET s, int level, int optname, const char *optval, int optlen);(2)函数原型s:套接字描述符,标识要设置选项的套接字。level:选项定义的层次。常见的层
2024-09-10 11:43:57
580
转载 Linux线程(3)——pthread_cancel()取消一个线程
如果线程的取消性状态为 PTHREAD_CANCEL_ENABLE,那么对取消请求的处理则取决于线程的取消性类型,该类型可以通过调用 pthread_setcanceltype()函数来设置,它的参数 type 指定了需要设置的类型, 而线程之前的取消性类型则会保存在参数 oldtype 所指向的缓冲区中,如果对之前的类型不敢兴趣,Linux 下允许将参数 oldtype 设置为 NULL。譬如,一组线程正在执行一个运算, 一旦某个线程检测到错误发生,需要其它线程退出,取消线程这项功能就派上用场了。
2024-08-27 10:04:17
234
原创 任务挂起与任务阻塞
操作系统挂起任务的决策通常基于资源管理、优先级调整、系统维护或用户干预。挂起任务是一个动态的过程,操作系统会根据当前的资源状况和任务的优先级来决定哪些任务应该被挂起。挂起的任务可以被系统调度器在资源可用时恢复执行。总的来说,任务挂起是一种由外部因素(如系统资源管理或用户操作)引起的状态,而任务阻塞是由任务内部的等待条件引起的状态。两者都是操作系统调度和资源管理机制的一部分。任务挂起(Suspend)和任务阻塞(Block)是操作系统中两种不同的任务状态,它们在任务的执行流程中扮演不同的角色。
2024-08-09 16:36:44
878
转载 线程取消, pthread线程取消,pthread_testcancel用法
注意,这里的线程thread中的循环时间变了,从代码上看,调用pthread_cancel时,线程thread正处于睡眠5秒的时候,那么printf("this is a thread cancel test 111\n");如果函数中没有取消点,或者还没有运行到取消点,那就不会取消,就像上面程序那样。(如:pthread_testcancel、pthread_join、pthread_cond_wait、printf、sleep、read、write、等都是可以产生阻塞的函数)及以后的内容都没有执行。
2024-08-07 15:37:50
175
转载 ps -ef|grep命令
符号是管道符号,表示ps和grep同时执行,ps的输出作为grep的输入。a :显示终端上的所有进程,包括其他用户的进程。ps -ef|grep可以查看包含关键字的进程。u :以用户为主的格式来显示程序状况。x :显示所有程序,不以终端机来区分。UID:程序被该 UID 所拥有。r :只显示正在运行的进程。C :CPU使用的资源百分比。TTY :登入者的终端机位置。TIME:使用掉的CPU时间。PPID:上级父程序的ID。-e : 显示所有进程。PID:程序的 ID。CMD:所下达的指令。
2024-06-05 11:46:04
1245
转载 top命令内容说明
sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,第三列是 cpu,第四列是内存,再使用head命令获取默认前10行数据。第二行显示的是所有启动的进程、目前运行的、挂起(Sleeping)的和无用(Zombie)的进程。这些命令是通过快捷键启动的。第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。
2024-06-05 11:44:00
46
转载 在K8S中,如果pod处于不健康状态怎么排查?
在Kubernetes(K8s)中,Pod处于不健康状态可能由多种原因导致。为了排查这个问题,你需要采取一系列步骤来确定问题的根源。
2024-05-31 10:54:58
93
转载 Uts_namespace分析
Uts命名空间的用来隔离系统的这些信息,使得用户在容器中查看到的信息是当前容器的系统、版本,不同于主机的,内核通过uts_namespace对当前系统中多个容器的这些信息进行统一管理,每一个容器对应有一个自己的uts_namespace,用来隔离容器的内核名称、版本等信息,不同容器查看到的都是属于自己的信息,相互间不能查看。unshare系统调用允许进行调用的进程用原名称空间的拷贝替代所选资源的名称空间,用于进程在不创建一个新的进程的情况下共享它的资源,这些资源包括进程上下文、命名空间等。
2024-05-15 15:13:05
229
图像滤波及复原
2011-11-23
图像均值滤波
2011-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人