最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 多線程不加鎖分塊讀取文件的方法

 更新時間:2018年12月11日 10:36:24   作者:sydiesel  
今天小編就為大家分享一篇Python 多線程不加鎖分塊讀取文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

多線程讀取或?qū)懭?,一般會涉及到同步的問題,否則產(chǎn)生的結(jié)果是無法預(yù)期的。那么在讀取一個文件的時候,我們可以通過加鎖,但讀不像寫操作,會導(dǎo)致文件錯誤,另外鎖操作是有一定的耗時。因此通過文件分塊,可以比較有效的解決多線程讀問題,之前看到有人寫的分塊操作,比較復(fù)雜,需要實現(xiàn)建立好線程以及所讀取塊信息,在這里,我提供了一種比較簡便的方法,以供參考。

#!/user/bin/env python
#_*_coding:utf-8_*_
from threading import Thread
import time
from processing import Process, Queue

from multiprocessing import Process

file_path = 't'
fd = open(file_path, 'r')


def deal(thread_num):

 i = 1
 line_list = []

 #20是我的文件行數(shù),正式情況下可以通過wc -l t獲取
 while i <= 20/thread_num:
 line_list.append(fd.readline())
 i += 1
 return line_list


def todo(thread_name, line_list):
 # print 'thread_name:',thread_name,'start'
 for line in line_list:
 print str(thread_name) + ' counsume:' + line
 # print 'thread_name:', thread_name, 'end'


if __name__ == '__main__':
 thread_num = 10
 thread_list = []
 for i in range(thread_num):
 line_list = deal(thread_num)
 t = Thread(target=todo, args=[i, line_list])
 t.start()
 thread_list.append(t)

 for t in thread_list:
 t.join()

下面是文件格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

運行的結(jié)果如下:

Python 多線程不加鎖分塊讀取文件

以上這篇Python 多線程不加鎖分塊讀取文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python函數(shù)定義及傳參方式詳解(4種)

    Python函數(shù)定義及傳參方式詳解(4種)

    這篇文章主要介紹了Python函數(shù)定義及傳參方式詳解(4種),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • TensorFlow模型保存和提取的方法

    TensorFlow模型保存和提取的方法

    這篇文章主要為大家詳細介紹了TensorFlow模型保存和提取的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python 并發(fā)編程 非阻塞IO模型原理解析

    python 并發(fā)編程 非阻塞IO模型原理解析

    這篇文章主要介紹了python 并發(fā)編程 非阻塞IO模型原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • python中的eval函數(shù)使用實例

    python中的eval函數(shù)使用實例

    eval() 函數(shù)用來執(zhí)行一個字符串表達式,并返回表達式的值,這篇文章主要介紹了python中的eval函數(shù),需要的朋友可以參考下
    2022-11-11
  • 100行Python代碼實現(xiàn)每天不同時間段定時給女友發(fā)消息

    100行Python代碼實現(xiàn)每天不同時間段定時給女友發(fā)消息

    這篇文章主要介紹了100行Python代碼,每天不同時間段定時給女友發(fā)消息,本文給出了實現(xiàn)思路,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Python?selenium?get_cookies獲取cookie不全的解決方案

    Python?selenium?get_cookies獲取cookie不全的解決方案

    之前使用爬蟲時最讓我頭疼的就是cookie失效的問題了,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?get_cookies獲取cookie不全的解決方案,需要的朋友可以參考下
    2022-10-10
  • python添加模塊搜索路徑方法

    python添加模塊搜索路徑方法

    下面小編就為大家?guī)硪黄猵ython添加模塊搜索路徑方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • python中的布隆過濾器用法及原理詳解

    python中的布隆過濾器用法及原理詳解

    這篇文章主要介紹了python中的布隆過濾器用法及原理詳解,布隆過濾器是一種概率空間高效的數(shù)據(jù)結(jié)構(gòu),它與hashmap非常相似,用于檢索一個元素是否在一個集合中。它在檢索元素是否存在時,能很好地取舍空間使用率與誤報比例,需要的朋友可以參考下
    2023-07-07
  • 詳解如何基于Pyecharts繪制常見的直角坐標系圖表

    詳解如何基于Pyecharts繪制常見的直角坐標系圖表

    pyecharts是基于前端可視化框架echarts的Python可視化庫,下面這篇文章主要給大家介紹了關(guān)于如何基于Pyecharts繪制常見的直角坐標系圖表的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 記錄Python腳本的運行日志的方法

    記錄Python腳本的運行日志的方法

    這篇文章主要介紹了記錄Python腳本的運行日志的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

泊头市| 文山县| 台江县| 肇东市| 英山县| 谷城县| 云霄县| 金山区| 噶尔县| 徐闻县| 诸暨市| 永年县| 红河县| 安阳县| 启东市| 渭源县| 保康县| 武定县| 都兰县| 新乡市| 凤山县| 满洲里市| 巩留县| 钦州市| 高碑店市| 澄江县| 灌南县| 磐石市| 钦州市| 兴文县| 通化县| 灵寿县| 黄梅县| 广丰县| 深水埗区| 金塔县| 石家庄市| 彩票| 当阳市| 绿春县| 隆回县|