Python线程中对join方法的运用的教程

join 方法:阻塞线程 , 直到该线程执行完毕

因此  ,可以对join加一个超时操作 , join([timeout]),超过设置时间,就不再阻塞线程

jion加上还有一个后果就是, 子线程和主线程绑定在一起 , 直到子线程运行完毕,才开始执行子线程。

代码 有join:

在CODE上查看代码片派生到我的代码片

  #-*- coding: UTF-8 -*-  

  import threading
  from time import sleep 

  def fun():

在CODE上查看代码片派生到我的代码片

  <span style="white-space:pre">  </span>i= 5
    while i > 0:
      print(111111)
      sleep(10)

在CODE上查看代码片派生到我的代码片

  <span style="white-space:pre">    </span>i-- 

  if __name__ == '__main__': 

    a = threading.Thread(target = fun)
    a.start()
    a.join()
    while True:
      print('aaaaaaa')
      sleep(1)

在CODE上查看代码片派生到我的代码片

输出:<pre name="code" class="python">111111 输完之后, 才输出 <span style="font-family: Arial, Helvetica, sans-serif;">aaaaaaa </span>

在CODE上查看代码片派生到我的代码片

代码: 无join

在CODE上查看代码片派生到我的代码片

  #-*- coding: UTF-8 -*-  

  import threading
  from time import sleep 

  def fun():
    while True:
      print(111111)
      sleep(10) 

  if __name__ == '__main__': 

    a = threading.Thread(target = fun)
    a.start()
    while True:
      print('aaaaaaa')
      sleep(1)

在CODE上查看代码片派生到我的代码片

<pre name="code" class="python" style="font-size:18px;">111111 和 <span style="font-family: Arial, Helvetica, sans-serif;">aaaaaaa  间隔输出</span>

(0)

相关推荐

  • Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后join这些线程结束,例如: for i in range(10): t = ThreadTest(i) thread_arr.append(t) for i in range(10): thread_arr[i].start() for i in range(10): thread_arr[i].joi

  • Python THREADING模块中的JOIN()方法深入理解

    看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join()方法的线程结束.(好难翻译,应该是这个意思) 哈哈,这个易懂. join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法. 复制代码 代码如下: #-*- encoding: gb2312 -*- im

  • Python中join和split用法实例

    join用来连接字符串,split恰好相反,拆分字符串的. 不用多解释,看完代码,其意自现了. 复制代码 代码如下: >>>li = ['my','name','is','bob'] >>>' '.join(li) 'my name is bob' >>>s = '_'.join(li) >>>s 'my_name_is_bob' >>>s.split('_') ['my', 'name', 'is', 'bob']

  • 浅析Python中的join()方法的使用

    join()方法方法返回一个在序列的字符串元素被加入了由str分隔的字符串. 语法 以下是join()方法的语法: str.join(sequence) 参数 sequence -- 这是要连接的元素的顺序. 返回值 此方法返回一个字符串,在序列seq字符串的连接.元素之间的分离器是字符串 str. 例子 下面的示例演示了join()方法的使用. #!/usr/bin/python str = "-"; seq = ("a", "b", &quo

  • python中列表元素连接方法join用法实例

    本文实例讲述了python中列表元素连接方法join用法.分享给大家供大家参考.具体分析如下: 创建列表: >>> music = ["Abba","Rolling Stones","Black Sabbath","Metallica"] >>> print music 输出: ['Abba', 'Rolling Stones', 'Black Sabbath', 'Metallica']

  • 详解Python中的join()函数的用法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下:     join():    连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符)连接生成一个新的字符串     os.path.join():  将多个路径组合后返回 一.函数说明 1.join()函数 语法:  'sep'.join(seq) 参数说明 sep:分隔符.可以为空 seq:要连接的元素序列.字符串.元组.字典 上面的语法即:以sep作为分隔符,将s

  • python多线程编程中的join函数使用心得

    今天去辛集买箱包,下午挺晚才回来,又是恶心又是头痛.恶心是因为早上吃坏东西+晕车+回来时看到车祸现场,头痛大概是烈日和空调混合刺激而成.没有时间没有精神没有力气学习了,这篇博客就说说python中一个小小函数. 由于坑爹的学校坑爷的专业,多线程编程老师从来没教过,多线程的概念也是教的稀里糊涂,本人python也是菜鸟级别,所以遇到多线程的编程就傻眼了,别人用的顺手的join函数我却偏偏理解不来.早上在去辛集的路上想这个问题想到恶心,回来后继续写代码测试,终于有些理解了(python官方的英文解释

  • Python 连接字符串(join %)

    join 方法用于连接字符串数组 复制代码 代码如下: s = ['a', 'b', 'c', 'd'] print ''.join(s) print '-'.join(s) 输出结果: abcd a-b-c-d 使用 % 连接多个变量 复制代码 代码如下: a = 'hello' b = 'python' c = 1 print '%s %s %s %s' % (a, b, c, s) 输出结果: hello python 1 ['a', 'b', 'c', 'd']

  • Python线程中对join方法的运用的教程

    join 方法:阻塞线程 , 直到该线程执行完毕 因此  ,可以对join加一个超时操作 , join([timeout]),超过设置时间,就不再阻塞线程 jion加上还有一个后果就是, 子线程和主线程绑定在一起 , 直到子线程运行完毕,才开始执行子线程. 代码 有join: 在CODE上查看代码片派生到我的代码片 #-*- coding: UTF-8 -*- import threading from time import sleep def fun(): 在CODE上查看代码片派生到我的代

  • Java线程中的常见方法(start方法和run方法)

    目录 start方法和run方法 示例代码 注意 sleep方法与yield方法 sleep yield 线程优先级 sleep的应用-防止cpu占用100% join方法 有实效的等待 interrupt方法 打断正常运行的线程,不会清空打断状态 守护线程 start方法和run方法 $start()$方法用来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到$cpu$时间片,就开始执行$run()$方法.而直接调用$run()$方法,仅仅只是调用了一个类里的方法,其本质上还

  • 基于Java子线程中的异常处理方法(通用)

    在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了.那么,在并发情况下,比如在父线程中启动了子线程,如何在父线程中捕获来自子线程的异常,从而进行相应的处理呢? 常见错误 也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的. 原因分析 让我们回忆一下Runnable接口的run方法的完整签名,因为没有标识throws语句,所以方法是不会抛出checked异常的.至于Runtime

  • Python 字典中的所有方法及用法

    字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 字典的使用 在某些情况下,字典比列表更加适用: 1.表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组 2.存储文件修改时间,用文件名作为键; 3.数字电话\地址薄 创建字典的五种方式 # 字典的创建方式 # 方式一 {key: value} dict1 = {'one': 1, 'two': 2, 'three': 3} print(dict1) # 方式二

  • python线程中的同步问题及解决方法

    多线程开发可能遇到的问题 假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000.但是由于是多线程访问,有可能出现下面情况: from threading import Thread import time num = 0 def test1(): global num for i in range(1000000): num += 1 print("--test1--num=%d" % num) def

  • Java多线程中关于join方法的使用实例解析

    先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String name; public MyThread(String name) { this.name = name; } @Override public void run() { for (int i = 0; i < 100; i++) { System.out.println(name+"[&

  • python线程中同步锁详解

    在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock Rlock Semaphore Event Condition 用来保证线程之间的同步,后者保证访问共享变量的互斥问题 Lock & RLock:互斥锁 用来保证多线程访问共享变量的问题 Semaphore对象:Lock互斥锁的加强版,可以被多个线程同时拥有,而Lock只能被某一个线程同时拥有. E

  • Python多线程中阻塞(join)与锁(Lock)使用误区解析

    关于阻塞主线程 join的错误用法 Thread.join() 作用为阻塞主线程,即在子线程未返回的时候,主线程等待其返回然后再继续执行. join不能与start在循环里连用 以下为错误代码,代码创建了5个线程,然后用一个循环激活线程,激活之后令其阻塞主线程. threads = [Thread() for i in range(5)] for thread in threads: thread.start() thread.join() 执行过程: 1. 第一次循环中,主线程通过start函

随机推荐