python高阶(一)

进程:
1.1单任务:逐一完成
1.2多任务:同一时间执行多个任务
1.3并行和并发:
并行,同一时刻多任务;例如玩手机时吃饭:
并发,任务交替进行,例如吃饭时接到电话。
1.4进程和程序:
程序:静态概念,已经编入完成的代码;
进程:运行起来的代码,除了代码,还有系统的资源。

多线程
Python3 线程中常用的两个模块为:
_thread
threading(推荐使用)
thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 Python3 中不能再使用"thread" 模块。为了兼容性,Python3 将 thread 重命名为 “_thread”。

import threading
def coding():
    for i in range(5):
        print('敲代码',i)
def smoking():
    for i in range(5):
        print('正在抽烟',i)
if __name__ == '__main__':
    print('刚刚进入程序',threading.enumerate())
    # 这个函数显示的是活动的线程个数
    coding_thread = threading.Thread(target=coding)
    # threading:写多线程的模块,target这个参数指定的是线程需要执行的函数
    smoking_thread = threading.Thread(target=smoking)
    # print(coding_thread)
    # print(smoking_thread)
    print('创建线程之后',threading.enumerate())
    # 开启线程
    coding_thread.start()
    smoking_thread.start()
    print('线程启动之后', threading.enumerate())
    
 **output**
 刚刚进入程序 [<_MainThread(MainThread, started 11804)>]
创建线程之后 [<_MainThread(MainThread, started 11804)>]
敲代码 0
敲代码 1
敲代码 2
敲代码 3
敲代码 4
正在抽烟线程启动之后  0[<_MainThread(MainThread, started 11804)>, 
]
正在抽烟 1
正在抽烟 2
正在抽烟 3
正在抽烟 4

注意.setDaemon()方法使用必须要在start之前:

import threading
import time
def eat():
    for i in range(3):

        print('A在吃饭',i)
        #time.sleep(1)
def talk():
    for i in range(3):
        print('B在说话')
if __name__=='__main__':
    #print(threading.enumerate())
    ret=threading.Thread(target=eat)
    #ret1=threading.Thread(target=talk)
    #print(threading.enumerate())
    ret.setDaemon(True)
    ret.start()
    #ret1.setDaemon(True)
    #ret1.start()
    #print('程序结束')
    exit()
    
    **output**
    
    A在吃饭

你可能感兴趣的:(python学习)