python进阶07并发之三其他问题

何时使用多进程(线程)

使用多进程or线程,对于python,考虑到GIL锁,基本上默认使用多进程就对了。
除此之外,线程共享全局变量,进程全局变量则是隔离的,实际进程大多数情况需要通信的,所以也需要考虑共享数据读写问题处理。 决定因素稳定性和数据共享要求上(操作系统差异性,win偏好线程,linux偏好进程)
性能上虽然线程较好,但实际除了大型互联网公司和部分专业性质软件,大多数中小型公司的并发量,并不会带来很大影响,况且目前服务器领域,基本上LInux和Unix占比较高,线程相比进程在性能上优势并不十分突出。所以这方面考量不会太大的。

python进阶06并发之二技术点关键词

GIL,线程锁

python中存在GIL这个”线程锁”,
关键地方可以使用c语言解决 GIL问题 然后可以提高cpu占用效率

python进阶05并发之一基本概念

大多编程语言,一旦涉及并发,都会比较复杂,知识点也较多(大多为历史问题,很多技术点现在非常少使用了,但语言层面也提供支持,对于这些冷门点,只需要知道即可,使用时也尽量避免使用这种冷门技术,除非和应用场景非常匹配)。实际使用过程中,只需要知道各名词以及大概功能,大多现用现查,毕竟涉及点太多,而且使用频率也并非很高,一般也就新系统研发会使用,后续维护时基本不会涉及太多。

进程状态和调度

软件_视频rtmp,rmvb,h265区别

h265,h264

视频压缩算法,原始视频是图片流,意味着[[r,g,b],[r,g,b],,]等等,极其占用空间,所以这种数据只能出现内存中(效率优先),硬盘和网络上只能是压缩后的(否则占用宽带或者存储资源),主要的压缩就是由他们来实现的。

python进阶04IO的同步异步,阻塞非阻塞

同步和异步

同步和异步关注的是消息通信机制
所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由调用者主动等待这个调用的结果。
而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。
举个通俗的例子:你打电话问书店老板有没有《分布式系统》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下”,然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。而异步通信机制,书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后查好了,他会主动打电话给你。在这里老板通过“回电”这种方式来回调。
同步的整个流程就1部分,1问答,异步模式2部分,1问空答复+无问1答复。

软件_可用rtmp直播地址20200517

可用的rtmp直播地址
耀才证券 : rtmp://202.69.69.180:443/webcast/bshdlive-pc
湖南卫视 : rtmp://58.200.131.2:1935/livetv/hunantv
广东卫视:rtmp://58.200.131.2:1935/livetv/gdtv
东方卫视:rtmp://58.200.131.2:1935/livetv/dftv
广西卫视:rtmp://58.200.131.2:1935/livetv/gxtv
一段视频 :rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

以下也已经验证
rtmp://vod.qthtv.com:1935/live/live2
rtmp://218.3.205.46/live/ggpd_sd
rtmp://w3.wifijiangyin.com:1936/live/mspd_bq
rtmp://w3.wifijiangyin.com:1936/live/xwzh_bq
rtmp://hls.hsrtv.cn/hls/hstv2
rtmp://hls.hsrtv.cn/hls/hstv1
rtmp://video.vtibet.com/masvod/zangyuTV_q1
rtmp://58.200.131.2:1935/livetv/cctv15
rtmp://222.173.22.119:1935/live/jnds_sd
rtmp://218.3.205.46/live/wyys_sd
rtmp://218.3.205.46/live/xwzh_sd
rtmp://hls.hsrtv.cn/hls/hstv3
rtmp://video.vtibet.com/masvod/hanyuTV_q1
rtmp://v.btzx.com.cn/live/weishi.stream
rtmp://218.3.205.46/live/jjsh_sd
rtmp://livetv.dhtv.cn:1935/live/news
rtmp://livetv.dhtv.cn:1935/live/financial
rtmp://v.btzx.com.cn/live/news.stream
rtmp://222.173.22.119:1935/live/jnyd_sd
rtmp://livetv.dhtv.cn:1935/live/peoples
rtmp://livetv.dhtv.cn:1935/live/citylife
rtmp://222.173.22.119:1935/live/jnxw_sd
rtmp://125.75.232.142/live/c01
rtmp://222.173.22.119:1935/live/xwhd_hd
rtmp://58.200.131.2:1935/livetv/cctv16

python进阶03UnboundLocalError和NameError错误

几个概念

1
2
3
4
5
6
7
8
9
10
11
12
13
code block:作为一个单元(Unit)被执行的一段python程序文本。例如一个模块、函数体和类的定义等。
scope:在一个code block中定义name的可见性;
block’s environment:对于一个code block,其所有scope中可见的name的集合构成block的环境。
bind name:下面的操作均可视为绑定操作
函数的形参
import声明
类和函数的定义
赋值操作
for循环首标
异常捕获中相关的赋值变量
local variable:如果name在一个block中被绑定,该变量便是该block的一个local variable。
global variable:如果name在一个module中被绑定,该变量便称为一个global variable。
free variable: 如果一个name在一个block中被引用,但没有在该代码块中被定义,那么便称为该变量为一个free variable。

软件_搭建rtmp视频推送环境,腾讯云,ubuntu16

1,安装conda,ffmpeg,nginx,nginx-rtmp-module

(建议先修改主机pip,conda的源)
安装conda,创建环境::conda create -n rstp python=3.7
报错:Solving environment: | failed

深入理解字符,字符集,gbk,utf8

字符,字符集,字符编码概念

字节

django学习笔记03

第一章,模型层

查询集API

django学习笔记02

第一章:模型层

1.8 查询操作

django学习笔记01

基于教程,刘江的博客教程Django教程:https://www.liujiangblog.com/course/django/87

第一章:模型层

python进阶02yield

yield关键字之前见过,也能读懂,但开发时也不大敢使用,感觉理解还是不够充分。刚好项目代码中有涉及,顺便再学习学习。
在理解yield之前,

可迭代,迭代器,生成器

django快捷复习手册

建立项目

django startproject projectname

django进阶01信号

看起来简单,用起来简单。理解起来则未必容易。上学那会这一块就没整明白,这两天又查了下资料,算是基本弄懂了。
为何难以理解?个人感觉起名占了很大一部分,如果signal命名为“观察者”,“监控者”,“盯梢者”,就容易理解多了。其本质就是一种典型观察者模式。命名为信号,第一感觉是”信号量“类似的东西。

定义信号:

软件_crontab任务配置失败原因总结和技巧

 昨天,配置crontab时遇到一些坑。crontab虽然算比较熟悉了,但也有1年多没碰过,有点生疏了,低级错误基本又犯了一遍。顺便整理下。

如果配置了crontab,之后没有生效,怎么办?
按照如下顺序处理:
1,命令单独拿出来,终端中执行
这个可以暴露出如下问题
a,脚本是否存在权限问题(chmod +x xx.sh)
b,是否存在(手抖)写错路径等低级错误
c,如果依赖特定conda环境,则需要conda activate xxx

软件_mongo占用磁盘空间过大

何为过大:mongodump之前2G,导入后变成15G,大约8倍.
原因:如果mongo版本小于3,则正常,mongo请升级到3.0版本上,目前3.6.7较稳定版

错误安装方式mongo2.x版

脚本_采集博客友情链接

新建博客后,百度收录往往非常慢,除了常规的keywords优化,较易实现且效果较好的就是增加友情链接了。
友情链接的添加可以分成3个步骤
1,找寻博客友情链接
2,判断博客是否符合自己博客领域或类型(有无“眼缘”),将对方友情链接添加到自己博客
3,将个人站点信息留言方式给对方

其中第1步,很容易用脚本实现(手工挨个找站点,挨个点击,也能实现,面临是人工点很多次,且容易重复)。
而且大部分博客友链都会链同类型网站,其实等于做了类型过滤。
第2,3由于博客基于框架和对接后台消息系统不同,难以实现自动操作。故对第1步写了专门脚本进行处理。
脚本地址:点击这里github
脚本基于python(由于本人使用linux系统,故只能保证linux下无问题,win下未做测试)
脚本使用方法:

算法_深度LSTM笔记

本文适合有一定基础同学的复习使用,不适合小白入门,入门参考本文参考文献第一篇

结构_静态综合图

个站_使用说明

跨期套利

跨期套利:核心点,概率,而非必然性。这一点需牢记,否则:亏损严重。
比如

历年的05-01都是走弱的,今年则不成立,而且大幅度反方向。
本人从事软件研发,习惯的进行必然性思维,a->b->c则想当然a->c,但是投资领域这是大忌,没有必然,只有概率,所以才需要多品种融合,否则一旦踩坑,万劫不复。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×