python(多线程、异常)

一、多线程
(1)

from threading import Thread

def Foo(arg):
    print(arg)


print('before')
# 线程和函数建立关系
t1 = Thread(target=Foo,args=(1,))
t1.start()
print(t1.getName())

t2 = Thread(target=Foo,args=(2,))
t2.start()
print(t2.getName())
print('after')

(2)

from threading import Thread
import time

def Foo(arg):
    for item in range(10):
        print(item)
        time.sleep(1)

print('before')
t1 = Thread(target=Foo,args=(1,))
# 默认为False
#t1.setDaemon(True)
t1.start()
t1.join(5)
print('after')
#time.sleep(10)

(3)

from threading import Thread,Lock
import time

num  = 0
def run(n):
    time.sleep(1)
    global num
# 在操作的时候加锁
    Lock.acquire()
    num += 1
    print('%s\n' %(num))
    Lock.release()
for i in range(15000000):
    t=Thread(target=run,args=(i,))
    t.start()

二、异常
(1)
try:
尝试执行的代码
except 错误类型1:
针对错误类型,对应的代码处理
except 错误类型2:
针对错误类型,对应的代码处理

try:
# 不能确定正确执行的代码
num = int(input(‘请输入一个整数:’))
print(num)
except:
print(‘您输入的不是整数,请按照提示正确输入’)

(2)
1.提示用户输入一个整数
2.使用8除以用户输入的整数并输出

try:
    num = int(input('请输入一个整数:'))
    result = 8 /num
    print(result)
except ZeroDivisionError:
    print('0不能做除数,请重新输入')
except ValueError:
    print('输入的不是数字')
except Exception as result:
    print('未知的错误 %s' %(result))
finally:
    # 无论是否有异常,都会执行的代码
    print('~~~~~~~~~~~~~~~~~~~')

你可能感兴趣的:(python(多线程、异常))