包子

线程 Object线程的wait()参数和nofify()

允我心安 提交于 2020-01-16 06:59:46
1.wait(毫秒) 不用唤醒等毫秒过去后自己醒来了 2.notify() 唤醒一个单线程 3.notifyAl() 唤醒多个线程 进入到TimeWaiting(记时等待)有两种方式 1.使用sleep(long m)方00法,在毫秒值结束之后,线程睡醒进入到Runnable/Blocked状态 2.使用wait(long m)方法如果在毫秒值结束之后,还没有被notify唤醒,就会自动醒来,相除睡醒进入到Runnable/Blocked状态 public class Demo01WaitAndNotify { public static void main ( String [ ] args ) { //创建锁对象,保证唯一 Object obj = new Object ( ) ; //创建一个顾客线程(消费者) new Thread ( ) { @Override public void run ( ) { while ( true ) { //保证等待和唤醒的线程只能有一个执行,需要使用同步技术 synchronized ( obj ) { System . out . println ( "顾客一告知老板要的保证和种类和数量" ) ; //调用wait方法,放弃cpu的执行,进入到WAITING状态(无限等待) try { obj . wait ( ) ; } catch

用生成器做伪并发

一曲冷凌霜 提交于 2019-12-03 10:52:43
#_author:Administrator#date:2019/11/4import timedef consumer(name): print('%s 开始吃包子啦'%name) while True: baizi=yield print('包子[%s]来了,被[%s]吃了'%(baizi,name))def producer(name): c1=consumer('A') c2=consumer('B') next(c1) next(c2) print('yuwei开始做包子啦') for i in range(10): time.sleep(1) print('做了两个包子') c1.send(i) c2.send(i)producer('yuwei')#生成器都是迭代器,迭代器不一定是生成器Output: A 开始吃包子啦 B 开始吃包子啦 yuwei开始做包子啦 做了两个包子 包子[0]来了,被[A]吃了 包子[0]来了,被[B]吃了 做了两个包子 包子[1]来了,被[A]吃了 包子[1]来了,被[B]吃了 做了两个包子 包子[2]来了,被[A]吃了 包子[2]来了,被[B]吃了 做了两个包子 包子[3]来了,被[A]吃了 包子[3]来了,被[B]吃了 做了两个包子 包子[4]来了,被[A]吃了 包子[4]来了,被[B]吃了 做了两个包子 包子[5]来了,被[A]吃了

Java自学-类和对象 访问修饰符

依然范特西╮ 提交于 2019-11-29 03:13:57
Java的四种访问修饰符 成员变量有四种修饰符 private 私有的 package /friendly/default 不写 protected 受保护的 public 公共的 比如public 表示公共的 public String name; 而maxHP 没有修饰符即代表package/friendly/default float maxHP 示例 1 : 类之间的关系 类和类之间的关系有如下几种: 以Hero为例 自身 :指的是Hero自己 同包子类 :ADHero这个类是Hero的子类,并且和Hero处于 同一个包下 不同包子类 :Support这个类是Hero的子类,但是在 另一个包下 同包类 : GiantDragon 这个类和Hero是 同一个包 ,但是彼此 没有继承关系 其他类 :Item这个类, 在不同包 ,也没有继承关系的类 示例 2 : private 私有的 使用private修饰属性 自身:是可以访问的 同包子类:不能继承 不同包子类:不能继承 同包类:不能访问 其他包类:不能访问 注: 红色字体,表示不可行 package charactor; import property.Weapon; public class Hero { //属性id是private的,只有Hero自己可以访问 //子类不能继承 //其他类也不能访问 private