- 博客(9)
- 收藏
- 关注
原创 mmap实现进程数据共享
addr: 指定映射区的首地址。通常传【NULL】,表示让系统自动分配length:共享内存映射区的大小。(【<= 】文件的实际大小)prot: 共享内存映射区的读写属性。flags: 标注共享内存的共享属性。MAP_SHARED 修改会反映到磁盘上,MAP_PRIVATE 修改不反映到磁盘上fd: 用于创建共享内存映射区的那个文件的 文件描述符。offset:默认0,表示映射文件全部。偏移位置。需是 【4k 的整数倍】2addr:mmap 的返回值length:大小。
2023-05-24 22:20:39
331
1
原创 在用户空间中实现线程
线程可以在内核中实现,也可以在内核当中实现,这个部分需要了解的是在用户空间当中实现线程。首先,内核和用户空间是两个不同的区域,在这两个区域所能执行的进程的状态也不相同,一个为内核态,一个为用户态。所以在用户空间中创建线程内核是不知道的,但是线程所使用的系统调用又是处于内核状态下的,那么如何获取该系统调用呢?抢占cpu的资源呢?这就需要明白,进程是资源分配的基本单位,那么cpu资源也就是依靠进程获得的,内核分配cpu资源按照进程来进行分配,而进程作为资源分配的基本单位,不仅仅要为线程分配该cpu资源,
2022-05-29 16:37:40
394
原创 弹出式线程
什么是弹出式线程?传统的方式下,系统都会设置一个固定的后台线程用来专门处理请求,平时该线程 都处于阻塞状态下, 但是当得到请求之后其才会被激活。而弹出式线程经常使用在分布式系统当中,当系统得到了一个请求之后,就会新创建一个新的线程去对该请求进行处理。并且弹出式线程和其他的线程都不相同,其没有设置存储器,也没有设置堆栈等等内容,可想而知,其创建的速度肯定要比一般的线程还要快。也正是因为如此,所以该请求到达到线程开始运行时间非常的短,请求不会被阻塞。弹出式线程通常可以运行在用户空间,也可以运行在内核
2022-05-29 16:09:54
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人