国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

多線程模型

2019-11-14 16:55:07
字體:
來源:轉載
供稿:網友

多線程模型

線程是一個有意思的話題,在工作中也經常面臨,故列個提綱,后續寫一下.
有一些方面還不熟悉,希望通過書寫讓思路更加清晰。

從幾個方面來探討多線程問題
1、用循環的例子來引入多線程的效率提示
2、搶占式多線程帶來資源競爭問題
3、資源競爭問題的解決辦法之一,鎖
4、線程切換也是一種開銷,并不是所有的都適用多線程
5、線程的創建銷毀也是一筆不小的開銷,線程池的實現
6、不同語言C,C++,java,PYTHON對1、2、3、4、5問題的處理

一、python篇

1、循環執行任務使得效率低下演示

import timedef timstr(ltime=None):    return time.strftime("[%Y-%m-%d %H:%M:%S]",time.localtime(ltime))def work_task(args,cnt=2):    time.sleep(cnt)        PRint("%s/targs=%s,cnt=%d/n" % (timstr(),args,cnt))    return def main1():    start = time.time()    for x in range(1,10):        work_task(cnt=1,args=x)    print("Elapsed time: %s" % (time.time()-start))main1() [2015-11-10 13:08:24]	args=1,cnt=1[2015-11-10 13:08:25]	args=2,cnt=1[2015-11-10 13:08:26]	args=3,cnt=1[2015-11-10 13:08:27]	args=4,cnt=1[2015-11-10 13:08:28]	args=5,cnt=1[2015-11-10 13:08:29]	args=6,cnt=1[2015-11-10 13:08:30]	args=7,cnt=1[2015-11-10 13:08:31]	args=8,cnt=1[2015-11-10 13:08:32]	args=9,cnt=1Elapsed time: 9.04143500328064

2、多線程開啟使得批量任務的執行時間和單次一樣演示

from threading import Threadclass GetThread(Thread):    def __init__(self, index):        self.index = index         super(GetThread, self).__init__()     def run(self):        work_task(self.index,cnt=2)        return def main2():            start = time.time()    threads = []    for index in range(1,10):        t=GetThread(index);        threads.append(t)        t.start()    for t in threads:        t.join()    print("Elapsed time: %s" % (time.time()-start))print("start time: %s/n" % (timstr()))main2()    print("end time: %s/n" % (timstr()))start time: [2015-11-10 13:09:30][2015-11-10 13:09:32]	args=1,cnt=2[2015-11-10 13:09:32]	args=4,cnt=2[2015-11-10 13:09:32]	args=2,cnt=2[2015-11-10 13:09:32]	args=3,cnt=2[2015-11-10 13:09:32]	args=5,cnt=2[2015-11-10 13:09:32]	args=6,cnt=2[2015-11-10 13:09:32]	args=7,cnt=2[2015-11-10 13:09:32]	args=8,cnt=2[2015-11-10 13:09:32]	args=9,cnt=2Elapsed time: 2.0126969814300537end time: [2015-11-10 13:09:32]

3、由于搶占式多線程使得資源競爭--無逾期效果-演示

4、由于搶占式多線程使得資源競爭--無逾期效果-鎖修復演示

5、線程頻繁創建導致開銷大之系統線程池的使用

6、線程頻繁創建導致開銷大之自己實現線程池

7、待處理數據任務排隊的一般解決方案隊列


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 八宿县| 长兴县| 东明县| 开原市| 田阳县| 上蔡县| 楚雄市| 宁安市| 宜黄县| 老河口市| 泗阳县| 六安市| 长寿区| 阜康市| 日土县| 肥城市| 怀宁县| 忻城县| 通山县| 政和县| 永福县| 如东县| 贺兰县| 宜城市| 巴楚县| 溧阳市| 丹寨县| 左权县| 连城县| 安庆市| 建宁县| 金门县| 新疆| 潜山县| 鸡西市| 班戈县| 化隆| 石河子市| 宁蒗| 鹤壁市| 富宁县|