今天小编就为大家分享一篇python 多线程串行和并行的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如下所示:
#coding=utf-8 import threading import time import cx_Oracle from pprint import pprint import csv table_name = "dbtest.csv" f = open(table_name + ".csv", "w") def exp01(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp01' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp02(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp02' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp03(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp03' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp04(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp04' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp05(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp05' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp06(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp06' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp07(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp07' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp08(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp08' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp09(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp09' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp10(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp10' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp11(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp11' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp12(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp12' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp13(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp13' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp14(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp14' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() threads = [] t1 = threading.Thread(target=exp01,name='exp01') threads.append(t1) t2 = threading.Thread(target=exp02,name='exp02') threads.append(t2) t2 =<div style="color:transparent">来源gaodai.ma#com搞#代!码网</div> threading.Thread(target=exp03,name='exp03') threads.append(t2) t2 = threading.Thread(target=exp04,name='exp04') threads.append(t2) t2 = threading.Thread(target=exp05,name='exp05') threads.append(t2) t2 = threading.Thread(target=exp06,name='exp06') threads.append(t2) t2 = threading.Thread(target=exp07,name='exp07') threads.append(t2) t2 = threading.Thread(target=exp08,name='exp08') threads.append(t2) t2 = threading.Thread(target=exp09,name='exp09') threads.append(t2) t2 = threading.Thread(target=exp10,name='exp10') threads.append(t2) t2 = threading.Thread(target=exp11,name='exp11') threads.append(t2) t2 = threading.Thread(target=exp12,name='exp12') threads.append(t2) t2 = threading.Thread(target=exp13,name='exp13') threads.append(t2) t2 = threading.Thread(target=exp14,name='exp14') 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 " 输出: C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/thread/p7.py select 'exp01' from dual select 'exp12' from dual select 'exp02' from dual select 'exp08' from dual select 'exp06' from dual select 'exp03' from dual select 'exp09' from dual select 'exp11' from dual select 'exp04' from dual select 'exp10' from dualselect 'exp05' from dual select 'exp07' from dual select 'exp13' from dual select 'exp14' from dual SID SERIAL# USERNAME PREV_SQL_ID 1 9 1179 TEST 01tjnxmmurdw7 2 10 75 TEST g5ph474nsjvwv 3 12 907 TEST 87mdhpgj9k5tz 4 419 1303 TEST 4g8r4bkf8aq3n 5 420 655 TEST 1rx9mjdvp1udx 6 421 1955 TEST 928r7khrtn4jd 7 424 51 TEST d6sgjjwpm74qz 8 839 3 TEST a1hg7hrwgrdqk 9 840 43 TEST fqjuj4qp5hmf0 10 841 111 TEST 2jzx0889h3k5n 11 1252 145 TEST awtzfbx7dhn88 12 1253 7 TEST 55tzs9gdmcd4p 13 1254 9 TEST 4v01fvb5sj7k4 14 1255 265 TEST 39bcsfjr5y62b 此时是并发执行 改变join的位置: #coding=utf-8 import threading import time import cx_Oracle from pprint import pprint import csv table_name = "dbtest.csv" f = open(table_name + ".csv", "w") def exp01(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp01' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp02(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp02' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp03(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp03' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp04(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp04' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp05(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp05' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp06(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp06' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp07(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp07' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp08(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp08' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp09(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp09' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp10(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp10' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp11(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp11' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp12(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp12' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp13(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp13' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() def exp14(): conn = cx_Oracle.connect('test/[email protected]/serv') cursor = conn.cursor() owner = "system" writer = csv.writer(f, lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) tname = threading.current_thread() print tname exportOracleSql = "select 'exp14' from dual" print exportOracleSql x = cursor.execute(exportOracleSql) time.sleep(1000) cursor.close() conn.close() threads = [] t1 = threading.Thread(target=exp01,name='exp01') threads.append(t1) t2 = threading.Thread(target=exp02,name='exp02') threads.append(t2) t2 = threading.Thread(target=exp03,name='exp03') threads.append(t2) t2 = threading.Thread(target=exp04,name='exp04') threads.append(t2) t2 = threading.Thread(target=exp05,name='exp05') threads.append(t2) t2 = threading.Thread(target=exp06,name='exp06') threads.append(t2) t2 = threading.Thread(target=exp07,name='exp07') threads.append(t2) t2 = threading.Thread(target=exp08,name='exp08') threads.append(t2) t2 = threading.Thread(target=exp09,name='exp09') threads.append(t2) t2 = threading.Thread(target=exp10,name='exp10') threads.append(t2) t2 = threading.Thread(target=exp11,name='exp11') threads.append(t2) t2 = threading.Thread(target=exp12,name='exp12') threads.append(t2) t2 = threading.Thread(target=exp13,name='exp13') threads.append(t2) t2 = threading.Thread(target=exp14,name='exp14') 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 " C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/thread/p7.py select 'exp01' from dual 此时变成串行,数据库连接也只有一个: SID SERIAL# USERNAME PREV_SQL_ID 1 421 1957 TEST 928r7khrtn4jd
以上就是python 多线程串行和并行的实例的详细内容,更多请关注gaodaima搞代码网其它相关文章!