python 執行緒不適合計算密集型的例子

2021-10-01 14:14:59 字數 3491 閱讀 6566

多個執行緒幹同一件事 vs 乙個執行緒幹一件事

2 個執行緒算 2 個斐波那契 vs 1 個執行緒算 2 個斐波那契,沒想到居然後者更快一些,原來 python 中的執行緒不適合計算密集型。

原因:

#!

/usr/bin/env python

# -*

- coding: utf-8-

*-from threading import thread

import time

import datetime

def febo

(n):

if n <=2:

return n

return

febo

(n-1)+

febo

(n-2

)def print_time()

: time_stamp = datetime.datetime.

now(

) print (time_stamp.

strftime

('%y.%m.%d-%h:%m:%s'))

class ethread

(thread)

: def __init__

(self, n)

:super

(ethread, self)

.__init__()

self.n = n

def run

(self)

:febo

(self.n)

class ethread2

(thread)

: def __init__

(self, n)

:super

(ethread2, self)

.__init__()

self.n = n

def run

(self)

:febo

(self.n)

febo

(self.n)

n =35

def main()

:print_time()

w =ethread

(n) w1 =

ethread

(n) w.

start()

w1.start()

w.join()

w1.join()

print_time()

print

("------------"

)print_time()

ww =

ethread2

(n) ww.

start()

ww.join()

print_time()

main

()

結果:

2019.12

.19-17:

39:002019.12

.19-17:

39:04--

----

----

--2019.12

.19-17:

39:042019.12

.19-17:

39:07

多個程序幹同一件事 vs 乙個程序幹一件事前者更快一些。

#!

/usr/bin/env python

# -*

- coding: utf-8-

*-from multiprocessing import process

import time

import datetime

def febo

(n):

if n <=2:

return n

return

febo

(n-1)+

febo

(n-2

)def print_time()

: time_stamp = datetime.datetime.

now(

) print (time_stamp.

strftime

('%y.%m.%d-%h:%m:%s'))

class eprocess

(process)

: def __init__

(self, n)

:super

(eprocess, self)

.__init__()

self.n = n

def run

(self)

:febo

(self.n)

class e2

(process)

: def __init__

(self, n)

:super

(eprocess2, self)

.__init__()

self.n = n

def run

(self)

:febo

(self.n)

febo

(self.n)

n =38

def main()

:print_time()

w =eprocess

(n) w1 =

eprocess

(n) w.

start()

w1.start()

w.join()

w1.join()

print_time()

print

("------------"

)print_time()

ww =

eprocess2

(n) ww.

start()

ww.join()

print_time()

main

()

結果:

原因:

真的不適合

1 做事情的時候聽 真的不適合我。曾經嘗試了很多次,甚至現在有時候也會想著寫 的時候聽 看書的時候聽 但是,真的,這不適合我。以後有這種想法的時候,及時告誡自己,真的不行,效率奇低!2 宿舍不是適合我學習的地方。從實驗室把電腦扛回宿舍,一本正經想要學習。最後都以跟室友聊天 吃零食 東摸摸西看看結束。...

開源不適合VMware

2008 10 14 12 08 julie 51cto.com ipo的巨大成功也使vmware承擔了重大的責任,同時,很多沒有意義的事情接踵而來。vmware也許可以忍受在辦公室內做些無意義的事情,但是它卻不容忍著發生在其技術的源 上。我們詢問公司是不是可以做些不同尋常地舉措比如將其旗艦技術源 ...

01Junit不適合多執行緒併發測試

package com.test5 import junit.framework.testcase public class badexampletest extends testcase public void run catch interruptedexception e public voi...