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

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

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

上面是我的理解和困惑 还望各位帮忙解答一点点


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


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


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


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

【热门文章】
【热门文章】