这里需要加锁,标准输出是共享资源,大家都可以同时向屏幕写东西,所以可能混乱。

这里需要加入互斥锁,告诉别的线程,我现在要写,你们先别写,然后写完了告诉别的线程,我写完了,你们可以申请写了。

loop 函数写成:

import threading

#创建锁

mutex = threading.Lock()

def loop(nloop, nsec):

#锁定

mutex.acquire()

print 'start loop', nloop, 'at:', ctime()

sleep(nsec)

print 'loop', nloop, 'done at:', ctime()

#释放

mutex.release()

所有代码为:

#!/usr/bin/env python

# encoding: utf-8

import threading

from time import sleep, ctime

loops = [ 4, 2 ]

class MyThread(threading.Thread):

def __init__(self, func, args, name=''):

threading.Thread.__init__(self)

self.name = name

self.func = func

self.args = args

def run(self):

apply(self.func, self.args)

# 创建锁

mutex = threading.Lock()

def loop(nloop, nsec):

# 锁定

mutex.acquire()

print 'start loop', nloop, 'at:', ctime()

sleep(nsec)

print 'loop', nloop, 'done at:', ctime()

# 释放

mutex.release()

def main():

print 'starting at:', ctime()

threads = []

nloops = range(len(loops))

for i in nloops:

t = MyThread(loop, (i, loops[i]),

loop.__name__)

threads.append(t)

for i in nloops:

threads[i].start()

for i in nloops:

threads[i].join()

print 'all DONE at:', ctime()

if __name__ == '__main__':

main()

在python中、下列代码的输出是什么-关于下列python多线程代码输出效果的疑问?...相关推荐

  1. Python教学 | Python 中的分支结构(判断语句)【附本文代码和数据】

    查看原文:[数据seminar]Python教学 | Python 中的分支结构(判断语句)[附本文代码和数据] Part1引言 上期文章我们学习了组合数据类型字典以及元组,这标志着 Python 基 ...

  2. python字符串能减吗_在python中减去两个字符串(Subtract two strings in python)

    在python中减去两个字符串(Subtract two strings in python) 我应该计算两个不同列表的元素之间的差异. 这是我的代码: import operator a = ['5 ...

  3. python中superclass是什么_深度解析并实现python中的super(转载,好文)

    大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...

  4. python中ifelifelse用在什么结构_详解Python if-elif-else知识点

    有的时候,一个 if - else - 还不够用.比如,根据年龄的划分:条件1:18岁或以上:adult 条件2:6岁或以上:teenager 条件3:6岁以下:kid Python if-elif- ...

  5. python中的常量可以修改吗_深入理解Python变量与常量

    变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.常量是一块只读的内存区域,常量一旦被初始化就不能被 ...

  6. python中for无限循环_关于循环:在Python中从1循环到无穷大

    在C语言中,我会这样做: 1 2 3 4int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Python中实现类似的功能? ...

  7. python中的绝对值符号怎么打_如何在python中取绝对值

    在python中取绝对值的三种方法:1.利用原生代码判断整数的符号,负数取相反值,正数取自身值:2.利用内置函数abs传入需要取绝对值的数即可:3.利用第三方库math中的fabs方法. python ...

  8. python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发

    strncmp函数用法详解_后端开发 strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, ...

  9. python中shelf对象_shelve 用来持久化任意的Python对象实例代码_python_脚本之家

    shelve -- 用来持久化任意的Python对象 这几天接触了Python中的shelve这个module,感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具.当我 ...

  10. 用Python中的Numpy实现简单高效的扑克牌API(附代码)

    用Python中的Numpy实现简单高效的扑克牌API 扑克牌可以用字典或者列表来表示,但是这样的话会浪费很多的空间.因此,本项目将使用Numpy来实现,这样的话能保证性能的情况下减少存储成本. 一般 ...

最新文章

  1. 89页PPT揭秘:人工智能产业爆发的拐点
  2. (转)#Pragma用法
  3. 线性规划之单纯形法(1)
  4. 经典问题:微服务和分布式的区别
  5. C++开发秋招笔试题
  6. java package 目录_修改jar包package目录结构操作方法
  7. js 控制滚动条位置
  8. Provisioning Services 7.8 入门系列教程之九 手动更新虚拟磁盘
  9. Centos7配置 SNMP服务(防火墙配置注意)
  10. 电商产品安全要求(UL+IEC)
  11. 实现一键下载,批量快速爬取B站视频
  12. 执行python代码的方式_涨见识了,在终端执行 Python 代码的 6 种方式!
  13. 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码
  14. Day53 Linux setitimer函数 信号集操作函数 信号捕捉 SIGCHLD信号
  15. java遍历mysql数据库_java mysql 遍历
  16. 诸云科技广告智能优化魔方系统,突破app变现增长瓶颈
  17. 医疗器械网络安全漏洞自评报告模板
  18. 【读书笔记】《秘书工作手记——学会办事》
  19. Python爬虫核心知识-第二章:2.2 爬虫urllib.parse模块
  20. 解决wine 1.35 无法发声问题

热门文章

  1. 东芝2505扫描软件_东芝P300机械硬盘上膛体验:内存大了,小姐姐再也不愁无处安放了...
  2. 实现账号在一端登入_跟我学spring security 基于数据库实现一个基本的登入登出...
  3. app是互联网信息服务器地址,详解如何让自己的网站/APP/应用支持IPV6访问,从域名到服务器配置...
  4. 开发日记-20190702 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 8
  5. https://www.threatminer.org/domain.php?q=blackschickens.xyz ——域名的信誉查询站点 还可以查IP...
  6. mongodb集群——配置服务器放分片meta信息,说明meta里包含了哪些数据信息
  7. python3 四舍五入
  8. C语言用char数组存储一串整数时的一个陷阱
  9. Softmax学习笔记
  10. C++ Stack 与String