当前位置: 首页 > news >正文

网站建设的成果怎么写压缩图片在线网站免费

网站建设的成果怎么写,压缩图片在线网站免费,不用下载就能玩的网页游戏,怎么样建设自己的网站一份代码,两个线程,使用synchronize实现: 重写run()方法,将输出1到100之间整数的代码写到同步方法里。线程1进入到同步方法,输出一个整数后,阻塞并释放锁。线程2进入到同步方法,唤醒线程1&…
一份代码,两个线程,使用synchronize实现:
  • 重写run()方法,将输出1到100之间整数的代码写到同步方法里。
  • 线程1进入到同步方法,输出一个整数后,阻塞并释放锁。
  • 线程2进入到同步方法,唤醒线程1,输出整数后,阻塞并释放锁。
  • 线程1和线程2重复第3步,直到输出所有的整数。
public class PrintNumThread extends Thread {static int num = 0;static Object object = new Object();@Overridepublic void run() {while (true) {synchronized (object) {//唤醒等待的线程 必须在同步代码块中object.notify();if (num < 100) {num++;System.out.println(Thread.currentThread().getName()+":"+num);} else {break;}try {/*wait()  必须在同步代码块中使用,必须是使用同步锁调用wait()wait()调用后,锁会释放必须要通过其他线程来唤醒*/object.wait();} catch (InterruptedException e) {e.printStackTrace();}}}}public static void main(String[] args) {PrintNumThread p1 = new PrintNumThread();PrintNumThread p2 = new PrintNumThread();p1.start();p2.start();}
}

两个不同的线程:

不使用锁,利用volatile实现

定义一个static的flag,交替修改0 1 ,

//两个线程,一个打印奇数,一个打印偶数
public class OneToHundred{static volatile int flag = 0;public static void main(String[] args){new Thread(new Task1(),"A").start();new Thread(new Task2(),"B").start();}
}class Task1 implements Runnable{@Overridepublic void run(){int i = -2;while(i<=99){if(OneToHundred.flag == 0){i+=2;System.out.println("a:" + i);OneToHundred.flag = 1;}}}
}class Task2 implements Runnable{@Overridepublic void run(){int i = -1;while(i<=98){if(OneToHundred.flag == 1){i+=2;System.out.println("b:" + i);OneToHundred.flag = 0;}}}
}
使用ReentranLock(固定一个打印奇数,一个打印偶数)
//三实现的方式,虽然也是一个打印奇数,一个打印偶数,但是A打印奇数还是偶数是随机的,即A打印奇数,则B打印偶
//如果A随机打印的是偶数,那么B打印奇数
//现在固定,A就是打印奇数,B就是打印偶数
public class OneToHundred {public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread( new Task(1),"A");Thread t2 = new Thread( new Task(0),"B");t1.start();t2.start();}
}class Task implements Runnable{private static int number = 0;private int flag = 0;private static ReentrantLock lock = new ReentrantLock();private static Condition condition = lock.newCondition();Task(int flag){this.flag = flag;}@Overridepublic void run(){while(number < 100){lock.lock();if(number >=100) break;if(b % 2 == this.flag){flag++;}else{try{condition.await();}catch (InterruptedException e) {e.printStackTrace();} }condition.signalAll();lock.unlock();}}
}

在Condition对象中,与wait() ,notify() ,notifyAll()方法分别对应的是await() , signal() ,signalAll()方法。Condition实例实质上被绑定到一个锁上要为特定Lock实例获得Condition实例,使用其newCondition()方法。
将第一个Number类改成以下代码,也可以实现一样的结果。
 

知识来源:

两个线程交替打印1-100之间的数字_线程交替打印1到100_叫我剑锋的博客-CSDN博客

两个线程交替打印1-100_两个线程交替打印1到100_一 路的博客-CSDN博客

两个线程交替打印1-100_两个线程交替打印1到100_一 路的博客-CSDN博客

http://www.yayakq.cn/news/673153/

相关文章:

  • 济南网站建设平台现在什么网站比较火做推广
  • jsp网站项目贵阳网站建设设计公司哪家好
  • 企业做网站用什么建站系统网站建设所用软件
  • 怎么快速推广appseo专员工作容易学吗
  • cms免费建站系统网站标准规范建设
  • 网站制作行业凌晨三点看的片韩国
  • 网站自适应与响应式做网站要了解哪些
  • 台州招聘网站建设桂林生活网二手房
  • 湛江网站设计软件优秀个人网站欣赏
  • 朝阳网站建设培训网站建设公司的客户
  • 连云港做电商网站的公司公司网站报价
  • 深圳网站设计哪好wordpress 收邮件发布
  • seo站公司手机版网站模板
  • 网站开发动态手工制作头饰
  • 微信辅助做单网站代加工接订单网站
  • 常见的网站首页布局泉州优化营商环境
  • 华强北做电子网站一个人做导购网站
  • dw做存资料网站网站建设模板代码下载
  • 汽车之家网站网站建设制作一个网站的费用
  • 湖南平台网站建设哪里好企业所得税怎么算利润
  • 黄金做空网站吴江做网站公司
  • 网站后台密码破解教程网站快备案
  • 免费做调查的网站有哪些网店运营数据分析
  • 如何建设盈利网站西宁互联网公司
  • 对网站做数据统计的目的是什么网站被网站建设的人控制了
  • wordpress登录名seo排名影响因素主要有
  • 网站建设后期需要做什么企业免费网站注册
  • 商业网站需要多少钱小程序定制开发多少费用
  • 微信端网站开发流程图网页设计项目报告总结
  • 东莞网站se网站建设后怎样发信息