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

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

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

伊谢尔伦
伊谢尔伦

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

全員に返信(4)
Ty80

Python 独自の GIL の制限により、Python マルチスレッドは実際には 1 つのコアでのみ実行されますが、Java マルチスレッドは複数のコアで実行できるため、マルチコア環境では 1 つのプロセスに複数のスレッドがあります。素晴らしいJavaは速いです。

いいねを押す +0
巴扎黑

Python はスクリプト言語としては解釈されており、動作の点ではコンパイル済みの Java とは比べものにならないため、Java に捨てられたと言っても過言ではありません。 。

いいねを押す +0
Peter_Zhu

IO 集中型の 2 つは同じ桁であると推定されます。

いいねを押す +0
巴扎黑

IO 集中型の場合、どちらの次元の言語自体もボトルネックではありません。本当のボトルネックは、IO デバイスへのアクセスを提供する OS のポリシーに起因します。本当に言語自体を比較したい場合は、言語カプセル化 OS によって公開される API と、API におけるコーダーの熟練度に限定されるでしょう。それだけです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート