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

多线程开发+多线程使用共享数据-17

时间:2017-10-26 20:55:27      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:def   imp   主线程   代码   线程   系统   包含   创建线程   print   

 

进程:运行着的程序

线程:每个进程里面至少包含一个线程,线程是操作系统创建的,用来控制代码执行的数据结构,线程就像代码的执行许可证

单线程程序,主线程的入口就是代码的开头

主线程顺序往下执行,直到所有的代码都执行完

CPU核心,在一个时间点上只能执行一个线程代码

调度:操作系统不会让一个线程一直占用CPU的

进程里的多线程:

线程库:代码通过系统调用,请求OS分配一个新的线程

python里面:thread、threading都可以用来创建和管理线程,thread比较底层,threading是thread模块的扩展,提供了很多线程同步功能,使用起来更加方便强大

多线程的概念

#coding = utf-8

print (‘main thread start.‘)

import threading

from time import sleep

def thread1_entry():

  print (‘child thread 1,strat‘)

  sleep(15)

  print(‘child thread 1,end‘)

t1 = threading.Thread (target=thread1_entry)  #实例化

t1.start()    创建新的线程,这时候才有两个线程;代码通过系统调用,请求OS分配一个新的线程,与原来的线程并行的执行一段代码

sleep(10)

print(‘main thread end.‘)

为什么需要多线程?

多线程给一个程序并行执行代码的能力

同时处理多个任务

$convert

>>convert 1.avi

>>convert 2.avi

常见的:UI线程、任务线程 task exeute

例子:主线程等待子线程结束

# coding=utf8

import threading

from time import sleep, ctime获取当前时间
def thread1_entry(nsec):

   print(‘child thread 1, start at:‘, ctime())

   sleep(nsec)

   print(‘child thread 1, end at:‘, ctime())
def thread2_entry(nsec):

   print(‘child thread 2, start at:‘, ctime())

   sleep(nsec)

   print(‘child thread 2, end at:‘, ctime())
if __name__==‘__main__‘:

   print(‘main thread start.‘)

   # 创建线程对象, 指定了新线程的入口函数

   t1 = threading.Thread(target=thread1_entry, args=(1,))

   t2 = threading.Thread(target=thread2_entry, args=(2,))
  # 启动新线程

  t1.start()

  t2.start()
  # 等t1 线程结束

   t1.join()

  # 等t2 线程结束

   t2.join()

   print(‘main thread end.‘)

多线程开发+多线程使用共享数据-17

标签:def   imp   主线程   代码   线程   系统   包含   创建线程   print   

原文地址:http://www.cnblogs.com/hyzhang/p/7737836.html

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