多個執行緒幹同一件事 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...