找工作储备知识

协程

对操作系统而言,线程是最小的执行单元,进程是最小的资源管理单元。

进程:应用程序的启动实例,进程拥有代码和打开的文件资源、数据资源、独立的内存空间。

线程:从属于进程,是程序的实际执行者,一个进程至少包含一个主线程,也可以有更多的子线程,线程拥有自己的栈空间。其具有五种状态:初始化、可运行、运行中、阻塞、销毁。

协程:是一种比线程更加轻量级的存在,如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。协程不被操作系统内核所管理,其完全由程序所控制,也就是在用户状态下执行,这样带来的好处是性能大幅度提升,不会像线程切换那样消耗资源。协程是一个特殊的函数,一个线程的多个协程的运行是串行的,也就是说一个协程运行时其他协程必须挂起。

python可以通过 yield/send 的方式实现协程。在python 3.5以后,async/await 成为了更好的替代方案。

多线程:一个进程可以并行执行多个线程的能力称为多线程。在单处理系统上,多线程不会影响计算速度。由于管理线程的开销,性能可能会有所下降。多线程增加了程序的复杂性,因此也增加了调试的难度。

python中的多线程是threading:

  1. threading.activeCount():找出活动线程对象的总数。
  2. threading.currentThread():确定调用方的线程控件中的线程对象的数量。
  3. threading.enumerate():提供当前活动的线程对象的完整列表。

Python和JAVA的区别:

1.Python比Java简单,学习成本低,开发效率高
2.Java运行效率高于Python,尤其是纯Python开发的程序,效率极低
3.Java相关资料多,尤其是中文资料
4.Java版本比较稳定,Python2和3不兼容导致大量类库失效
5.Java开发偏向于软件工程,团队协同,Python更适合小型开发
6.Java偏向于商业开发,Python适合于数据分析
7.Java是一种静态类型语言,Python是一种动态类型语言
8.Java中的所有变量需要先声明(类型)才能使用,Python中的变量不需要声明类型
9.Java编译以后才能运行,Python直接就可以运行;
10.JAVA 里的块用大括号对包括,Python 以冒号 + 四个空格缩进表示。
11.JAVA 的类型要声明,Python 的类型不需要。
12.JAVA 每行语句以分号结束,Python 可以不写分号。
13.实现同一功能时,JAVA 要敲的键盘次数一般要比 Python 多。

一些细节区别:
1.数
    python只有四种数据:整数,长整数、浮点数和复数
    java则有char,short, byte,int,long,float, double类型

2. 字符串
2.1. 字符串表示
    Python中没有表示单个常量字符串类型的char类型,其可以用单引号‘ ’或双引号“ ”来表示一个字符串,也可以用三引号来表示一个多行字符串
    Java中char表示单个字符,String表示一个字符串,常量字符或字符串用双引号“ ”表示

2.2. 多行字符串
    Python在字符串末尾加上反斜杠(/)表示字符串在下一行继续
    Java用加号(+)表示字符串在下一行继续

2.3. Python中其它的表示方法
    Python中还有可以在字符串前加前缀r或R:表示自然字符串,即不对字符串做转移处理比java方便
    Python可以加前缀u或U:表示unicode字符串

注意: Python 中的__init__()方法类似与Java中的构造函数,Java构造函数中的self默认存在,不需要在构造函数声明的时候进行显示指明,但是Python需要在__init__()函数中显示指明(但是ID调用时不用显示进行self传递)。

3. 操作符
    Python中**表示幂计算,如果 X**y表示 Xy
    Python中//表示整除,即商的整数部分
    Python中~表示按位翻转,~x就是-(x+1)

4. 对象的序列化表示
    Python中可以使用str()或repr()函数来实现对象的序列化
    Java中通过toString()方法来实现对象的序列化

注意:序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。

 

为什么大型平台使用java多,运维或测试使用python多?

  1. python有很多虚拟机实现,如cython,Pyston,pypy,jython, IronPython等等,适合用于业务语言,或插件语言,或面向领域语言。
  2. java的商业化公司支持多,如sap,oracle,ibm等,有商业化的容器,中间件,企业框架ejb。python的开源组织支持多,如qt,linux,google,很多开源程序都支持python, 如pyqt,redis,spark等。
  3. java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值