1. 程式人生 > >python 序列執行和並行執行

python 序列執行和並行執行

#coding=utf-8

import threading

import time

import cx_Oracle

from pprint import pprint

import csv

print time.asctime()

table_name = "dbtest.csv"

f = open(table_name + ".csv", "w")

conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy')

cursor = conn.cursor()

def query01():

    tname = threading.current_thread()

    aa=10

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query02():

    tname = threading.current_thread()

    aa=20

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query03():

    tname = threading.current_thread()

    aa=30

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query04():

    tname = threading.current_thread()

    aa=40

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

def query05():

    tname = threading.current_thread()

    aa=50

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query06():

    tname = threading.current_thread()

    aa=60

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query07():

    tname = threading.current_thread()

    aa=70

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    return row

    cursor.close()

def query08():

    tname = threading.current_thread()

    aa=80

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query09():

    tname = threading.current_thread()

    aa=90

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close()

def query10():

    tname = threading.current_thread()

    aa=100

    # cursor.execute("SELECT *  FROM TEST100 WHERE ID = %s", [aa])

    cursor.prepare("""SELECT *  FROM TEST100 WHERE ID=:id""")

    cursor.execute(None,{'id':aa})

    row = cursor.fetchall()

    print row

    return row

    cursor.close() 
 


threads = []

t1 = threading.Thread(target=query01, name='query01')

threads.append(t1)

t2 = threading.Thread(target=query02, name='query02')

threads.append(t2)

t2 = threading.Thread(target=query03, name='query03')

threads.append(t2)

t2 = threading.Thread(target=query04, name='query04')

threads.append(t2)

t2 = threading.Thread(target=query05, name='query05')

threads.append(t2)

t2 = threading.Thread(target=query06, name='query06')

threads.append(t2)

t2 = threading.Thread(target=query07, name='query07')

threads.append(t2)

t2 = threading.Thread(target=query08, name='query08')

threads.append(t2)

t2 = threading.Thread(target=query09, name='query09')

threads.append(t2)

t2 = threading.Thread(target=query10, name='query10')

threads.append(t2) 
 


if __name__ == '__main__':

    for t in threads:

        # t.setDaemon(True)

        t.start()

        # t.run()

        # t.start()

        # print '3333333'

        print threading.current_thread()

        # print t.is_alive()

        # print '3333333'

        t.join()

    print "all over "

    print time.asctime() 
 


C:\Python27\python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py

Wed Mar 28 11:08:19 2018

<_MainThread(MainThread, started 18744)>

[(10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10'), (10, '10sssssssss10', 'tlcb', 'tlcb'), (10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10')]

<_MainThread(MainThread, started 18744)>

[(20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20')]

<_MainThread(MainThread, started 18744)>

[(30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30')]

<_MainThread(MainThread, started 18744)>

[(40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40')]

<_MainThread(MainThread, started 18744)>

[(50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50')]

<_MainThread(MainThread, started 18744)>

[(60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60')]

<_MainThread(MainThread, started 18744)>

<_MainThread(MainThread, started 18744)>

[(80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80')]

<_MainThread(MainThread, started 18744)>

[(90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90')]

<_MainThread(MainThread, started 18744)>

[(100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100')]

all over 

Wed Mar 28 11:08:34 2018 


Process finished with exit code 0 
 


這個時候是序列 花費了15秒 
 
 
 


多執行緒跑:

#coding=utf-8

import threading

import time

import cx_Oracle

from pprint import pprint

import csv

print time.asctime()

table_name = "dbtest.csv"

f = open(table_name + ".csv", "w") 


def query01():

    tname = threading.current_thread()

    aa=10

    conn = cx_Oracle.connect('tlcbuser/
[email protected]
/tlyy') cursor = conn.cursor() # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query02(): tname = threading.current_thread() aa=20 conn = cx_Oracle.connect('tlcbuser/
[email protected]
/tlyy') cursor = conn.cursor() # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query03(): tname = threading.current_thread() aa=30 conn = cx_Oracle.connect('tlcbuser/
[email protected]
/tlyy') cursor = conn.cursor() # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query04(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=40 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query05(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=50 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query06(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=60 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query07(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=70 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() return row cursor.close() conn.close() def query08(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=80 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query09(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=90 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query10(): conn = cx_Oracle.connect('tlcbuser/[email protected]/tlyy') cursor = conn.cursor() tname = threading.current_thread() aa=100 # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa]) cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""") cursor.execute(None,{'id':aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() threads = [] t1 = threading.Thread(target=query01, name='query01') threads.append(t1) t2 = threading.Thread(target=query02, name='query02') threads.append(t2) t2 = threading.Thread(target=query03, name='query03') threads.append(t2) t2 = threading.Thread(target=query04, name='query04') threads.append(t2) t2 = threading.Thread(target=query05, name='query05') threads.append(t2) t2 = threading.Thread(target=query06, name='query06') threads.append(t2) t2 = threading.Thread(target=query07, name='query07') threads.append(t2) t2 = threading.Thread(target=query08, name='query08') threads.append(t2) t2 = threading.Thread(target=query09, name='query09') threads.append(t2) t2 = threading.Thread(target=query10, name='query10') threads.append(t2) if __name__ == '__main__': for t in threads: # t.setDaemon(True) t.start() # t.run() # t.start() # print '3333333' print threading.current_thread() # print t.is_alive() # print '3333333' t.join() print "all over " print time.asctime() C:\Python27\python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py Wed Mar 28 11:12:47 2018 <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> [(40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40')] [(60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60')] [(80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80')] [(50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50')] [(10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10'), (10, '10sssssssss10', 'tlcb', 'tlcb'), (10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10')] [(20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20')] [(30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30')] [(100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100')] [(90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90')] all over Wed Mar 28 11:12:55 2018 Process finished with exit code 0 此時花了 8秒

相關推薦

python 序列執行並行執行

#coding=utf-8 import threading import time import cx_Oracle from pprint import pprint import csv print time.asctime() table_name =

python基礎程序執行

單核cpu實現多工的原理 多核cpu實現多工的原理 以上圖片來自千峰教育,如有侵權聯絡刪除 ‘’’ 什麼叫多工:作業系統可以同時執行多個任務,現代的作業系統比如windows、mac os、liunx、unix等都是支援多工的系統 ‘’’ ‘’'實現多工的方式 1、多程序模式:啟動多個程

Python】程序執行緒分別適用於什麼情況?

1.什麼是程序?什麼是執行緒? 程序是表示資源分配的基本單位,又是排程執行的基本單位。例如,使用者執行自己的程式,系統就建立一個程序,併為它分配資源,包括各種表格、記憶體空間、磁碟空間、I/O裝置等。然後,把該程序放人程序的就緒佇列。程序排程程式選中它,為它分配

python電腦鬧鐘定時執行python程式

#本文也是兩塊內容 1.python電腦鬧鐘 import winsound import time my_hour = input('請輸入時:') my_minute = input('請輸入分:') print('您的鬧鈴已設定成功!等待它叫醒你吧~~~~') while

Python 多程序執行緒的效率對比

import time from threading import Thread from multiprocessing import Process def f1(): # time.sleep(1) #io密集型 # 計算型: n = 10 for i in

接口測試基礎三-Python序列序列

序列 res 了解 col 兩個 分享圖片 -- 演示 address 啥是序列化?啥是反序列化?這兩個詞聽起來優點高大上的意思,其實呢不然,很簡單的可以理解為: 序列化:將python的數據對象編碼轉換為json格式的字符串 反序列化:將json格式的字符串解碼為pyt

JDK1.8--序列排序並行排序對比

xl_echo編輯整理,交流學習請加1280023003 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 在 Java 8 中, 集合介面有兩個方法來生成流: stream() − 為集合建立序列流。 parallelStream()

Java jvm 載入機制及 其中解釋執行編譯執行的區別

jvm載入機制 https://www.cnblogs.com/Qian123/p/5707562.html https://www.cnblogs.com/lingz/archive/2018/07/31/9394238.html 以前有句話說:“Java是解釋執行的 ” 。現在看

什麼是序列序列化 什麼是序列並行

當兩個程序在進行遠端通訊時,彼此可以傳送各種型別的資料。無論是何種型別的資料,都會以二進位制序列的形式在網路上傳送。傳送方需要把這個物件轉換為位元組序列,才能在網路上傳送;接收方則需要把位元組序列再恢復為物件。 1、把物件轉換為位元組序列的過程稱為物件的序列化。

使一段程式碼第一次執行以後執行結果不同

在學習《C專家程式設計》時,遇到了這段程式碼非常的有意思。 void generate_initializer(char * string) { static char separator = ' '; printf(" %c %s \n",separator,stri

執行並行執行與順序執行(一)

package test; import java.util.Vector; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 通過 join

編譯執行解釋執行的區別

解釋執行: 由直譯器根據輸入的資料當場執行而不生成任何的目標程式. 解釋執行程式是高階語言翻譯程式的一種,它將源語言(如BASIC)書寫的源程式作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程式。這種工作方式非常適合於人通過終端裝置與計算機會話,如

python序列JSON

為什麼把這兩個放到一起,理由很簡單,不過暫時不解釋。 一,先看python提供的序列化模組pickle import pickle l = ['柯基', '小李', '大華'] lw = pickle.dumps(l) # 把物件轉乘位元組流 也就是序列化 print(lw) with

解釋執行編譯執行的區別、基於棧基於暫存器的指令集區別

1. 解釋執行和編譯執行的區別 我們在學習java的時候,對class檔案都有個疑惑,虛擬機器是如何執行發方法中的位元組碼指令的呢?其實 虛擬機器的執行引擎在執行java程式碼的時候有解釋執行和編譯執行兩種選擇。通俗說來,解釋執行是通過直譯器執行,編譯執行即通

Mybatis程式中執行單獨執行同一條SQL出現結果不一致(部分資料沒有查詢出來)

1.mapper檔案如下所示: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybat

js 自動執行 定時執行

自動執行<script language="JavaScript"><!--window.onload = new function(){ alert( "hi ")}//--></script>定時執行<script languag

iOS block 的 同步執行非同步執行詳解 加 屬性字串 設定

直接上程式碼:在蘋果的api中的block有些是同步執行的block如: array = [array sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {

將MySQL去重操作優化到極致之三彈連發(二):多執行並行執行

        上一篇已經將單條查重語句調整到最優,但該語句是以單執行緒方式執行。能否利用多處理器,讓去重操作多執行緒並行執行,從而進一步提高速度呢?比如我的實驗環境是4處理器,如果使用4個執行緒同時執行查重sql,理論上應該接近4倍的效能提升。一、資料分片        我

iOS-GCD的序列佇列並行佇列的任務及實現

•什麼是GCDGCD全稱是GrandCentral Dispatch,純C語言的,提供了非常多強大的函式 •GCD的優勢 1,GCD是蘋果公司為多核的並行運算提出的解決方案 2,GCD會自動利用更多的

ionic3最小化並且監控到前臺執行後臺執行

1.安裝外掛ionic cordova plugin add cordova-plugin-appminimize npm install --save @ionic-native/app-minimize 2.建立BackButtonProviderimport { AppMinimize } from '