zoukankan      html  css  js  c++  java
  • python-多线程1

    程序进程线程的关系:

    程序(program)

      一组功能集合的静态描述,程序至少有一个进程

    进程(process)

      进程是系统进行资源分配和调度的,他们拥有自己独立的空间,进程至少有一个线程

    线程(thread)

      线程是处理器调度的基本单位,他们的空间是共享的,一个进程中可以有多个线程

    多线程的优点:

      使用线程可以把占据长时间的程序的任务放到后台去处理,使得用户体验更好.比如,用户点击了一个按钮去触发

    某些时间的处理,可以弹出一个进度条来显示处理的进度

    '''
    本代码主要目的:
        理解多线程运行逻辑
        熟悉语法和方法
    '''
    
    import threading 
    import time #用于停顿的
    
    
    class myThread(threading.Thread):    #使用多线程,必须要继承父类threading.Thread
        def __init__(self,threadID,name,counter):
            threading.Thread.__init__(self)   #固定格式,相当于线程的初始化
            self.threadID = threadID
            self.name = name
            self.counter = counter
            print('初始化完成')
            
        def run(self):    #你不能确定run()在不同线程间的执行顺序,这个由CPU处理来决定的
            print("开始" + self.name)
            print_time(self.name,self.counter,5)
            print("结束" + self.name)
    
    def print_time(threadName,counter,delay):
        while counter:
            time.sleep(delay)#停顿5s
            print("%s:%s"%(threadName,time.ctime(time.time())))#打印线程名和时间
            counter = counter - 1
    
    #创建线程,生成两个对象
    thread1 = myThread(1,"Thread-1",1)
    thread2 = myThread(2,"Thread-2",2)
    
    #开启线程
    thread1.start()    #启动线程,每个线程对象必须至少调用一次该函数,他会自动调用run()方法
    thread2.start()

    可能会出现不同的结果,出现的顺序不同

    初始化完成
    初始化完成
    开始Thread-1
    开始Thread-2
    Thread-1:Sat Jun 17 00:39:50 2017
    结束Thread-1
    Thread-2:Sat Jun 17 00:39:50 2017
    Thread-2:Sat Jun 17 00:39:55 2017
    结束Thread-2

      

      

  • 相关阅读:
    Mysql Explain 详解
    TP5和TP3.2的区别
    Http协议详解
    TCP协议三次握手与四次挥手详解
    一些常规面试问题
    计算机网络常识
    队列与栈的区别
    面向对象
    在浏览器中输入 www.baidu.com 后执行的全部过程
    SVN在ubuntu的安装和使用
  • 原文地址:https://www.cnblogs.com/R-bear/p/7030459.html
Copyright © 2011-2022 走看看