码迷,mamicode.com
首页 > 编程语言 > 详细

python_day10 多线程 协程 IO模型

时间:2017-09-05 00:05:53      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:pre   blog   开启   格式   init   rate   read   io模型   log   

多线程
协程
IO模型

多线程

#线程的PID与主进程PID一致
from threading import Thread
from multiprocessing import Process
import os
def task():
    print(%s is running %os.getpid())
if __name__ == __main__:
    t1=Thread(target=task,)
    t2=Thread(target=task,)
    # t1=Process(target=task,)
    # t2=Process(target=task,)
    t1.start()
    t2.start()
    print(,os.getpid())
#多线程共享一个进程内的资源
from threading import Thread
from multiprocessing import Process
n=100
def work():
    global n
    n=0
if __name__ == __main__:
    # p=Process(target=work,)
    # p.start()
    # p.join()
    # print(‘主‘,n)
    t=Thread(target=work,)
    t.start()
    t.join()
    print(,n)
#开启线程的两种方式
#开启线程的方式一:使用替换threading模块提供的Thread
from threading import Thread
from multiprocessing import Process
def task():
    print(is running)
if __name__ == __main__:
    t=Thread(target=task,)
    # t=Process(target=task,)
    t.start()
    print()
#开启线程的方式二:自定义类,继承Thread
from threading import Thread
from multiprocessing import Process
class MyThread(Thread):
    def __init__(self,name):
        super().__init__()
        self.name=name
    def run(self):
        print(%s is running %self.name)
if __name__ == __main__:
    t=MyThread(egon)
    # t=Process(target=task,)
    t.start()
    print()
#多线程共享同一进程内地址空间的练习
#三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
from threading import Thread
msg_l=[]
format_l=[]
def talk():
    while True:
        msg=input(>>: ).strip()
        msg_l.append(msg)
def format():
    while True:
        if msg_l:
            data=msg_l.pop()
            format_l.append(data.upper())
def save():
    while True:
        if format_l:
            data=format_l.pop()
            with open(db.txt,a) as f:
                f.write(%s\n %data)
if __name__ == __main__:
    t1=Thread(target=talk)
    t2=Thread(target=format)
    t3=Thread(target=save)
    t1.start()
    t2.start()
    t3.start()
#Thread对象其他相关的属性或方法
from threading import Thread,activeCount,enumerate,current_thread
import time
def task():
    print(%s is running %current_thread().getName())
    time.sleep(2)
if __name__ == __main__:
    t=Thread(target=task,)
    t.start()
    t.join()
    print(t.is_alive())
    print(t.getName())
    print(enumerate())
    print()
    print(activeCount())

 


协程
IO模型

python_day10 多线程 协程 IO模型

标签:pre   blog   开启   格式   init   rate   read   io模型   log   

原文地址:http://www.cnblogs.com/liweijing/p/7476135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!