为了账号安全,请及时绑定邮箱和手机立即绑定

java多线程与python多线程同时进行io密集型操作

java多线程与python多线程同时进行io密集型操作

qq_花开花谢_0 2019-03-23 19:19:28
对于多核的linux服务器 java多线程与python多线程同时进行io密集型操作 那个的速度会更快一些我个人的理解是这样的无论是java还是python它们都是真实的线程,那么也就是调用了操作系统的api创建的了线程 至于说创建的是内核级还是用户级的线程我不得知 如果是用户级线程 那么线程对于cpu不可见 由jvm或者python解释器来控制线程获取cpu资源的权限 所以说对于同一个进程下创建的多个线程,同一时刻只有一个线程获取了cpu的资源,也就是线程只能并发不能并行。那么这里我们常说的Java多线程并行又是怎么一回事 如果多线程只能并发 那么无论多核还是单核 java和python在io密集型应用中性能差不多如果是内核级线程 同一个进程下同一时刻多个线程可能获得多个cpu的资源 这样就实现了并发 这个就说通了 而python解释器GIL将python线程控制 使得同一时刻只有一个线程有获得cpu资源的权限上面是我的理解和困惑 还望各位帮忙解答一点点
查看完整描述

4 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

python多线程由于python本身的GIL的限制,实际只是跑在一个核里,而java多线程是可以跑在多个核里的,所以多核环境下,一个进程多个线程,妥妥的java快啊。


查看完整回答
反对 回复 2019-04-16
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Python 作为脚本语言,运行上是解释型的,在速度上是没法和编译型的 Java 进行对比的,被 Java 甩多少条街都不为过。


查看完整回答
反对 回复 2019-04-16
?
侃侃无极

TA贡献2051条经验 获得超10个赞

针对IO密集型的两者估计会在一个量级上。


查看完整回答
反对 回复 2019-04-16
?
大话西游666

TA贡献1817条经验 获得超14个赞

对于IO密集型,两个任何一个维度上的语言根本不是瓶颈本身。真正的瓶颈来自于OS提供对IO设备访问的策略。如果要真要较真语言本身,大概也仅仅限于语言封装OS所暴露出来的API,以及编码者对API的熟练度而已,也仅此而已。


查看完整回答
反对 回复 2019-04-16
  • 4 回答
  • 0 关注
  • 926 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号