一篇文章搞定线程、进程、协程和异步I/O

线程:线程是操作系统能进行运算调度的最小单位。线程是一堆指令集合。不停的切换    进程:

IO密集型任务或函数:有阻塞        计算密集型任务函数

Python的GIL:全局解释器锁,在同一时刻只能有一个线程进入解释器

Python没有多线程

pycharm:IDE编译环境

 1 import time
 2 begin = time.time()
 3 def foo():
 4     print('foo')
 5     time.sleep(1)
 6 def bar():
 7     print('bar')
 8     time.sleep(2)
 9 foo()
10 bar()
11 end = time.time()
12 print(end-begin)

 主线程与子线程抢占CPU资源去执行。

import time
import threading
begin = time.time()
def foo(n):
    print('foo%s'%n)
    time.sleep(1)
    print('end foo')
def bar(n):
    print('bar%s'%n)
    time.sleep(2)
    print('end bar')
t1 = threading.Thread(target=foo,args=(1,))
t2 = threading.Thread(target=bar,args=(2,))
t1.start()
t2.start()
print('....in the main...... ')
end = time.time()
print(end-begin)
import time
import threading
begin = time.time()
def foo(n):
    print('foo%s'%n)
    time.sleep(1)
    print('end foo')
def bar(n):
    print('bar%s'%n)
    time.sleep(2)
    print('end bar')
t1 = threading.Thread(target=foo,args=(1,))
t2 = threading.Thread(target=bar,args=(2,))
t1.start()
t2.start()
print('....in the main...... ')
t1.join()
t2.join()
end = time.time()
print(end-begin)

猜你喜欢

转载自www.cnblogs.com/chengtianyu/p/9555905.html