如下所示:
#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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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 <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)> <_MainThread(MainThread, started 156528)>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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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/test@192.168.137.2/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 <_MainThread(MainThread, started 154776)> select 'exp01' from dual 此时变成串行,数据库连接也只有一个: SID SERIAL# USERNAME PREV_SQL_ID 1 421 1957 TEST 928r7khrtn4jd
以上这篇python 多线程串行和并行的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。