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

西安网站开发定制制作专注昆明网站建设

西安网站开发定制制作,专注昆明网站建设,环球影城预约上传照片失败,html中文美食网站模板一份代码#xff0c;两个线程#xff0c;使用synchronize实现#xff1a; 重写run()方法#xff0c;将输出1到100之间整数的代码写到同步方法里。线程1进入到同步方法#xff0c;输出一个整数后#xff0c;阻塞并释放锁。线程2进入到同步方法#xff0c;唤醒线程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(i99){if(OneToHundred.flag 0){i2;System.out.println(a: i);OneToHundred.flag 1;}}} }class Task2 implements Runnable{Overridepublic void run(){int i -1;while(i98){if(OneToHundred.flag 1){i2;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://wiki.neutronadmin.com/news/6900/

相关文章:

  • 简述网站的设计流程是怎样的宣城网站seo诊断
  • 石家庄网站设计培训班网上开店电商平台有哪些
  • 建网站做点什么好百度云搜索引擎官方入口
  • 网站站点是什么科技资讯网站有哪些
  • 永春县住房和城乡规划建设局网站手机网站安全证书过期怎么处理
  • 海外域名注册网站重庆建网站流程
  • 兰州做网站泰兴公司做网站
  • 服装设计参考网站公司网站设计维护
  • wordpress最新主题百度整站优化
  • 房屋网站wordpress文档可以下载吗
  • 郑州网站建设用户广州住房保障城市建设局网站
  • 网站建设基础入门西安网站制作 西安彩铃400电话
  • 个人宽带备案网站wordpress考试系统
  • 非常好的网站建设公司网站建设的定位是什么意思
  • 网站建设为什么不清晰阿里云网站怎么备案域名
  • asp.net怎么生成网站龙华网站建设推广平台
  • 网站建设与制作教程下载做外贸网站服务器要选择哪里的
  • 门户网站如何帮企业做宣传曲靖网站微信建设
  • 唐山手机网站建设网站快备案
  • 域名之后怎么做网站网站手机采集
  • 分类网站上怎么做锚文本广东
  • 网站建设公司 信科便宜垂直购物网站建设
  • 成都网站搜索优化手游网页版
  • 网站建设企业排行培训机构专业
  • 邢台网站网页设计公司php网站模板怎么安装
  • 医生工作室网站建设建一个做笔记的网站
  • 北京市建设厅网站首页深圳网站建设app开发
  • 建设厅网站进不去中国机械加工网商城
  • 河南科技网站建设比亚迪新能源汽车报价大全一览表
  • 做电影网站多少钱wordpress用户组阅读文章