并发机制
发表于|更新于|Python
|总字数:24|阅读时长:1分钟|浏览量:
多进程
多线程
多协程
异步IO/事件驱动IO/IO多路复用
文章作者: Estom
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!
相关推荐

2021-12-20
top系统状态
top查看系统状态 参考文献 https://www.cnblogs.com/niuben/p/12017242.html 1 说明第一行,任务队列信息,同 uptime 命令的执行结果 系统时间:07:27:05 运行时间:up 1:57 min, 当前登录用户: 3 user 负载均衡(uptime) load average: 0.00, 0.00, 0.00 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了 第二行,Tasks — 任务(进程) 总进程:150 total, 运行:1 running, 休眠:149 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie 第三行,cpu状态信息 0.0%us【user space】— 用户空间占用CPU的百分比。 0.3%sy【sysctl】— 内核空间占用CPU的百分比。 0.0%ni【】— 改变过...

2021-12-24
trap
trap捕捉信号和其他事件并执行命令。 概要1trap [-lp] [[arg] signal_spec ...] 主要用途 用于指定在接收到信号后将要采取的动作。 脚本程序被中断时执行清理工作。 选项12-l 打印信号名称以及信号名称对应的数字。-p 显示与每个信号关联的trap命令。 参数arg:接收到信号时执行的命令。 signal_spec:信号名称或信号名称对应的数字。 返回值如果表达式执行结果为成功时返回0,当参数 signal_spec 没有指定有效值时返回1。 关于信号信号是一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略,默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务。 在有些情况下,我们不...

2021-03-30
2.5 进程与线程
1 进程与线程进程 进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。 下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。 线程 线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。 线程栈是在进程的堆中分配栈空间,每个线程拥有独立的栈空间,为了避免线程之间的栈空间踩踏,线程栈之间还会有以小块guardsize用来隔离保护各自的栈空间,一旦另一个线程踏入到这个隔离区,就会引发段错误。 QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。 区别 调度。线程是独立调度的基本单位,进程是资源分配的基本单位。在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。 并发性。线程使得操作系统具有更好的并发性,从...

2021-12-24
nohub后端执行
后端执行后端执行由两种模式 &-后台运行。&的意思是在后台运行,意思是说,当你在执行 ./a.out & 的时候, 即使你用ctrl C, 那么a.out照样运行(因为对SIGINT信号免疫)。但是要注意, 如果你直接关掉shell后, 那么,a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。 nohup-永久执行。nohup的意思是忽略SIGHUP信号,所以当运行nohup ./a.out的时候,关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。但是,如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫) 用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出。所以,&和nohup没有任何关系, 要让进程真正不受shell中...

2021-12-24
htop
htop[非内部命令]一个互动的进程查看器,可以动态观察系统进程状况 补充说明htop命令 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。 与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。 与top相比,htop有以下优点: 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。 在启动上,比top 更快。 杀进程时不需要输入进程号。 htop 支持鼠标操作。 两者相比起来,top比较繁琐。 top缺点: 只支持键盘操作。 显示也单调。 htop 官网:http://htop.sourceforge.net/ 语法1htop 参数1234567-C --no-color 使用单色配色方案-d --delay=DELAY 设置更新之间的延迟,在十秒-s --sort-key=COLUMN 纵列排序(try --sort-key=help for a l...

2021-04-07
06 RDB持久化
RDB持久化1 RDB持久化方法概念RDB持久化可将内存中的数据库状态保存到磁盘上,避免数据丢失。持久化可以手动,也可以根据服务器配置选项定期执行。 RDB持久化生成的RDB文件是一个压缩过的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。 RDB文件的创建与载入有两个命令可以生成RDB文件: SAVE。该命令会阻塞Redis服务器进程,直到RDB文件创建完毕,期间拒绝任何命令请求。 BGSAVE。派生出一个子进程来创建RDB文件,服务器进程(父进程)继续处理命令请求。 在BGSAVE命令执行期间,服务器处理SAVE、GBSAVE、BGREWRITEAOF命令会被拒绝执行。 创建RDB文件的操作由rdb.c/rdbSave函数完成。RDB文件的载入工作在服务器启动时自动执行。另外,AOF文件的更新频率比RDB文件要高,所以: 如果服务器开启了AOF,那么优先用AOF来还原数据库。 只有在AOF关闭时,服务器才会用RDB来还原数据库。 载入RDB文件的工作由rdb.c/rdbLoad函数完成。载入RDB文件期间,服务器一直处于阻塞状态。 2 自动间隔性保存R...
公告
欢迎参观Estom的小屋




