看别人的博客来学习.
看的是这个人的:
这
进线程同步
套接字,共享内存(信号灯...),管道(相关进程),命名管道(无关进程,描述符)
信号,消息队列(有格式,类型,优先级)
线程同步:
锁:互斥锁,自旋锁(一直原地打转的锁),读写锁(多读单写),条件变量(互斥锁),信号量(高级互斥,类似红绿灯)
协程(程序范围内线程),多核->多进程+协程
.
并发性:其实协程,线程都差不多,都是在条件不具备时,为了不浪费资源,切换到其他程序的过程
.
就像多条道路一样,这条不通,就走另外几条.
进程通信方法:
linux:管道 信号量 共享内存 消息队列 套接字 windows:共享内存(特殊文件映射),邮槽(点对点消息队列) 匿名管道 命名管道 套接字.
文件映射:把文件当内存一样使用.
共享内存:用-1代替文件句柄,文件映射对象,从页面访问内存.其他进程可访问.
匿名管道:左端句柄(进程)--右端句柄(进程)可单向(只读-只写),可双向(都可读写).
命名管道:服进程与客户进程通信
.两个进程之间通信比较,多了就不行了.根据权限通信.可跨计算机,tcp
邮槽:单向通信.客-名->发送,放在邮槽中,可多邮槽实现双向通信.就像邮箱一样.放在那,然后有空就来读.用udp.
套接字.
线程通信:同步互斥.锁,信号机制.
窗口:全局变量,消息队列.
内部中断,又叫异常.有三种:程序错误,软件引发,int 0,int 3,bound,机器检查.
硬件中断:外围硬件发出,请求服务.中断控制器收集,先执行指令,再响应中断.
软中断:int n
memcache,内存中缓存数据或对象.
c文件读写函数:open,read,close,write,lseek(指定偏移),fstat(状态),mmap(内存映射), mmap映射后,不必读写了,像内存一样操作.页面大小的整数倍,面向流的设备不能映射,实现与硬件有关, fcntl(文件属性),ioctl通过对文描发送命令来控制设备
.
位图:就是一个4位整数用1位来表示.节省32倍空间.
布隆过滤器:判断是否存在元素,本质还是哈希.哈希将元素映射为位.哈希的缺点就是数据量大时的冲突. 不存储元素,可保密.哈希函数间无关,易于硬件并行实现.可表全集.可位操作.不能删元素
,就是个哈希.
同步IO,异步IO:这是IO完成的事.
死锁.就是我们都要两个东西才能干活,结果你一个,我一个,大家都干不了活,干瞪眼.
其实计算机行业,最大的毛病就是概念太多.很多一样的东西,折腾过来,折腾过去.瞎折腾.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现