摘要: 思路: 需要定义一个全局变量,供生产者和消费者使用 1、对于生产者来说:x>0 wait(print) ,否则x+1(使用for循环) 2、对于消费者来说:x==0 wait(print),否则x-1(使用for循环) 3、生产者和消费者分别是一个class 1 __author__ = 'anna 阅读全文
posted @ 2020-07-21 20:01 anna1210 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1 ''' 2 线程同步 锁 3 不同线程操作某一个对象时,容易出现数据不完整或者不一致! 4 解决方案:加锁。在线程需要独占资源的时候,获取锁; 5 线程不需要独占资源的时候,释放锁,别的线程可以获取锁; 6 7 锁的目的:确保多个线程不会同时操作同一个资源,确保数据完整性和一致性; 8 同时,又 阅读全文
posted @ 2020-07-21 19:11 anna1210 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 1 ''' 2 创建线程,也可以动态确定线程数 3 ''' 4 # encoding: utf-8 5 6 7 import threading 8 import time 9 import random 10 11 12 def print_time(thread_name, step): 13 阅读全文
posted @ 2020-07-21 19:10 anna1210 阅读(1288) 评论(0) 推荐(0) 编辑
摘要: 1 ''' 2 线程中可以循环,可以调用函数,可以做复杂的事情 3 ''' 4 # encoding: utf-8 5 6 import threading 7 import time 8 9 10 def print_time(thread_name, step): 11 # python的tim 阅读全文
posted @ 2020-07-21 19:08 anna1210 阅读(2934) 评论(0) 推荐(0) 编辑
摘要: 1 ''' 2 问题:需要传参怎么办? 3 例如,希望给每个线程打印的时候休眠时间不一样,打印次数不一样 4 例如,给每个线程指定一个名称,或者id 5 1、重写构造方法,把传入的参数作为成员变量 6 2、别忘了调用父类的构造方法 7 ''' 8 9 # encoding: utf-8 10 11 阅读全文
posted @ 2020-07-21 19:05 anna1210 阅读(6899) 评论(0) 推荐(0) 编辑
摘要: 1 import threading 2 import time 3 4 5 class myThread(threading.Thread): 6 # 可选的类方法,初始化的方法 7 def __init__(self, name): 8 threading.Thread.__init__(sel 阅读全文
posted @ 2020-07-21 10:06 anna1210 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1 __author__ = 'anna' 2 # encoding:utf-8 3 4 5 import threading 6 import time 7 8 9 def music(): 10 time.sleep(5) 11 print('打印方法音乐!') 12 13 14 def boo 阅读全文
posted @ 2020-07-21 10:02 anna1210 阅读(83) 评论(0) 推荐(0) 编辑