java多线程与python多线程同时进行io密集型操作
伊谢尔伦
伊谢尔伦 2017-04-17 17:07:13
0
4
608

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(4)
Ty80

파이썬 자체 GIL의 제한으로 인해 Python 멀티스레딩은 실제로 하나의 코어에서만 실행되는 반면, Java 멀티스레딩은 여러 코어에서 실행될 수 있으므로 멀티코어 환경에서는 하나의 프로세스에 여러 스레드가 있습니다. 좋은 자바는 빠릅니다.

巴扎黑

Python 스크립팅 언어로서는 연산 측면에서 해석하면 속도 면에서는 컴파일된 Java과 비교할 수 없다. Java

Peter_Zhu

IO 집약적인 경우 두 가지 크기가 동일한 것으로 추정됩니다.

巴扎黑

IO 집약적인 경우 어느 차원의 언어든 병목 현상 자체가 전혀 아닙니다. 실제 병목 현상은 IO 장치에 대한 액세스를 제공하는 OS 정책에서 발생합니다. 정말로 언어 자체를 비교하고 싶다면 아마도 언어 캡슐화 OS에서 노출하는 API와 해당 API에 대한 코더의 숙련도로 제한될 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿