06 2019 档案
摘要:top 命令主要用于查看进程的相关信息,同时它也会提供查看系统平均负载,cpu 信息和内存信息 实时监控系统资源使用情况 top 常用快捷键: top输出详解
阅读全文
摘要:GIL与多线程 有了GIL的存在,同一时刻同一进程中只有一个线程被执行 多进程可以利用多核,但是开销大,而python的多线程开销小,但却无法利用多核优势 CPU用来计算 1、对计算来说,cpu越多越好,但是对于I/O来说,再多的cpu也没用2、当然对运行一个程序来说,随着cpu的增多执行效率肯定会
阅读全文
摘要:一 死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 执行结果 解决方法: 二 递归锁 递归锁,在Python中为了支
阅读全文
摘要:GIL与Lock Python已经有一个GIL来保证同一时间只能有一个线程来执行了,为什么这里还需要互斥锁lock? 锁的目的是为了保护共享的数据,同一时间只能有一个线程来修改共享的数据 GIT保证了一个进程内有多个线程,只有一个线程执行,保证python垃圾回收线程安全 结论:保护不同的数据就应该
阅读全文
摘要:python 并发编程 多线程 GIL全局解释器锁基本概念 python 并发编程 多线程 GIL与Lock python 并发编程 多线程 GIL与多线程
阅读全文
摘要:首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。 就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。 >有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代
阅读全文
摘要:1.执行一个python程序 ,会产生一个进程 ,然后会在内存生成一份内存空间 先把python解释器代码加载到内存里, python解释器代码就是C语言代码 2. 然后再把 自己写的python文件程序代码 加载到内存 3.然后python解释执行, 把python代码交给CPython解释器是解
阅读全文
摘要:互斥锁 并行变成串行,牺牲效率 保证数据安全,实现局部串行 保护不同的数据,应该加不同的锁 现在一个进程 可以有多个线程 所有线程都共享进程的地址空间 实现数据共享 共享带来问题就会出现竞争 竞争就会出现改乱数据 加上互斥锁 牺牲效率 保证数据安全 通过把并发变成串行
阅读全文
摘要:做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁。然后进程也销毁。 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开启进程 ,首先开一个主线程 ,然后开子线程 ,主线程代码执行完毕后 ,也要等所有子线程 ,执行完毕后
阅读全文
摘要:介绍 默认名字是Thread-1 主线程名字默认是MainThread 启动程序瞬间开启子线程 改主线程名字 current_thread.setName() 主线程等待子线程运行完,主线程再执行 join()
阅读全文
摘要:1.开进程的开销远大于开线程 2 同一进程内的线程共享该进程的数据,进程之间地址空间是隔离的 执行结果如下,p.start ()将开启进程的信号发给操作系统后,操作系统要申请内存空间,让好拷贝父进程地址空间到子进程,开销远大于线程 先打印的是主进程 执行结果如下,几乎是t.start ()的同时就将
阅读全文
摘要:线程理论 python 并发编程 多线程 开启线程的两种方式 python 并发编程 多线程与多进程的区别 python 并发编程 多线程 Thread对象的其他属性或方法 python 并发编程 多线程 守护线程 python 并发编程 多线程 互斥锁 python GIL解释器锁与互斥锁 pyt
阅读全文
摘要:一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二 开启线程的两种方式 第一种 每造一个进程,默认有一个线程,就是主线程。 进程要想执行,要先造一个主线程,然后由这个进程内的线程去运行代码 上面程序开启了一个进程,
阅读全文
摘要:操作系统比作一家公司,进程相当于一个部门 线程相当于一个部门的成员 进程之间是互相隔离的 一 什么是线程 1. 每启动一个进程 至少有一个线程, 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 2. 一个进程里的线程里面的成员 与其他进程的线程的成员 互相隔离数据不共享的 3.同
阅读全文
摘要:生产者消费者模型总结 生产者消费者模型什么时候用? 1、程序中有两类角色 2、引入生产者消费者模型为了解决的问题是 3、如何实现生产者消费者模型 如果使用multiprocessing模块 的Queue 实现生产者和消费者模型,意味着生产者,消费者,Queue三者必须都在同一台服务器上, 这是集中式
阅读全文
摘要:一 生产者消费者模型介绍 为什么要使用生产者消费者模型 生产者指的是生产数据的任务,消费者指的是处理数据的任务, 生产数据目的,是为了给消费者处理。 在并发编程中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生
阅读全文
摘要:参数介绍 方法介绍 q.join() 作用是 等队列执行完了 队列数据取完 就执行完了
阅读全文
摘要:python 并发编程 多进程 队列 python 并发编程 多进程 生产者消费者模型介绍 python 并发编程 多进程 生产者消费者模型总结 python 并发编程 多进程 JoinableQueue
阅读全文
摘要:队列介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现) 制定队列最大大小 参数介绍: 主要方法介绍: 1.队列里面不应该放入大数据, 放小数据 2.队列不指定
阅读全文
摘要:抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt 并发运行,效率高,但竞争写同一文件,数据写入错乱,只有一张票,都卖成功给了10个人 总结:程序出现数据写入错乱 大家都查到票为1,都购票成功 加锁处理:购票行为由
阅读全文
摘要:互斥锁与join 互斥锁和join都可以把并发变成串行 以下代码是用join实现串行 执行结果 发现使用join将并发改成串行,确实能保证数据安全, 但join会把 ,整个程序所有进程都变成串行, 连查看都变成串行了 但问题是连查票操作,也变成只能一个一个人去查了,很明显大家查票时应该是并发地去查询
阅读全文
摘要:python 并发编程 多进程 互斥锁 模拟抢票 互斥锁与join区别
阅读全文
摘要:运行多进程 每个子进程的内存空间是互相隔离的 进程之间数据不能共享的 一 互斥锁 但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端, 是可以的,而共享带来的是竞争,竞争带来的结果就是错乱 如何控制,就是加锁处理。而互斥锁的意思就是
阅读全文
摘要:一 守护进程 主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务 主进程创建子进程,然后将该进程设置成守护自己的进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError
阅读全文
摘要:进程对象的其他方法一: terminate与is_alive is_alive() 立刻查看的子进程结果 是否存活 terminate() 关闭子进程,这种也是给操作系统发送信号和start 一样 子进程还活着 关闭子进程,把内存空间回收,是操作系统做的,但是什么时候关闭进程的时间就不知道了 ter
阅读全文
摘要:一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一: 在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源。 这种是没有join方
阅读全文
摘要:python multiprocessing模块 介绍 python 开启进程两种方法 python 并发编程 查看进程的id pid与父进程id ppid python 并发编程 多进程 Process对象的其他属性方法 join 方法 python 并发编程 多进程 Process对象的其他属性
阅读全文
摘要:一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启
阅读全文
摘要:查看进程id pid 不需要传参数 查看父进程id ,和子进程id
阅读全文
摘要:一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启
阅读全文
摘要:一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 三 并发与并行 无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这
阅读全文
摘要:linux sed 命令 实现对文件的增删改替换查 实验
阅读全文
摘要:1. 统一实验文本 # 创建包含下面内容的文件,后面的操作都会使用这个文件 [root@MongoDB ~]# cat person.txt 101,mike,CEO 102,jack,CTO 103,yy,CFO 104,feixue,CIO 105,tom,COO 2. 增删改查 2.1 增 a
阅读全文
摘要:stat 显示文件和文件系统状态(查看文件属性) 查看文件inode详细信息
阅读全文
摘要:操作系统介绍 操作系统发展史 进程理论 多进程 多线程 协程 io模型
阅读全文
摘要:chgrp 组 文件或目录 [root@MongoDB ~]# chgrp incahome test.sh [root@MongoDB ~]# ll total 4 -rw . 1 root root 1851 Mar 27 08:38 anaconda-ks.cfg -rw-r--r-- 1 r
阅读全文
摘要:chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限。 更改文件权限的2种方式: 一、权限字母+操作符表达式 二、数字方法(常用) hmod数字权限方法(推进) 命令格式: chmod
阅读全文
摘要:小结: 目录的读、写、执行权限 1. 可读r:表示具有浏览目录 下面文件及子目录的权限 ls dir 1)如果没有x权限,则不能进到目录,既无法执行cd dir 2)如果没有x权限,ls列表时可以看到所有文件名,但是无法显示文件的详细属性 3)如果ls -l列表,所有的属性会带有问号,也会提示无权访
阅读全文
摘要:权限 前三位rwx 属主权限位(用户权限位) 主人 第一个root就是自己的电脑,自己的用户就看这里的权限 第二个root 是用户组 用户组的权限看 中间的三位 最后三位,其他用户权限位 r read 可读权限 4 w write 可写权限 2 x 执行权限 1 - 没有权限 0 前三个字符是代表
阅读全文
摘要:使用命令为grep -E 及egrep 1. + 重复一个或一个以上前面的字符 区别于(*是0或多个) *与+的区别 2.? 重复0个或一个0 或者没有 的前面字符 (与.区别 是有且只有1个) 查i有一个 或者没有的m开头 e结尾的字符串 ?与.区别 找i有一个的 m开头 e结尾字符串 3.| 表
阅读全文
摘要:最常应用正则表达式命令是 awk sed grep 基础正则字符说明 1.^word 匹配以word开头的内容 vi/vim编辑器里^代表一行的开头 2.word$ 匹配以word结尾的内容 vi/vim编辑器里$代表一行的结尾 3. ^$ 表示空行 a.过滤出来以m开头的行 b.过滤出来以m结尾的
阅读全文
摘要:linux 通配符与正则表达式 linux 通配符 linux 正则表达式 使用grep命令 linux 扩展正则表达式 egrep linux 正则表达式 元字符
阅读全文
摘要:* --代表所有字符 ?- 通配符,代表一个字符 , 一个?代表只匹配一个字符 ????4个?代表匹配4个字符 ;分号 两个命令之间的分隔符 # 文件里面的注释 | 管道 ~ 用户家目录 - 上一次目录 $ 变量前需要加的符号 / 路径分割符号 也是根的意思 >或1> 重定向 覆盖原有数据 >> 追
阅读全文
摘要:linux通配符和三剑客(grep、awk、sed)正则表达式是不一样的 通配符一般用户命令行bash环境,而linux正则表达式用于awk、grep、sed
阅读全文
摘要:\b 单词边界 \bcool\b 只匹配cool字符串 匹配有mike字符串的行
阅读全文
摘要:linux里的软链接 相当于windows系统中的快捷方式 软链接总结: 1.删除源文件,软链接文件依然存在,但是无法访问指向源文件路径内容。 2.失效时候一般是白字红底闪烁显示。 test -> file 3.执行命令ln -s 源文件 软链接文件 4.软链接和源文件是不用类型的文件,也是不同的文
阅读全文
摘要:硬链接:ln 源文件 目标文件 软链接:ln -s 源文件 目标文件 硬链接总结: 1.具有相同inode节点号的多个文件互为硬链接文件 2.删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。 3.只有删除源文件以及所有对应的硬链接文件,文件实体才会被删除 4.当所有硬链接文件和源文件被删除
阅读全文