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

滨州网站建设制作百度seo如何优化

滨州网站建设制作,百度seo如何优化,合肥哪里有做网站,互联网提供的服务主要有哪些一份代码,两个线程,使用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.hkea.cn/news/935927/

相关文章:

  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站
  • 网站建设的图片叠加步骤过程2021年搜索引擎排名
  • 网站链接到邮箱怎么做搜索引擎推广试题
  • 十堰城市建设网站制作自己的网站
  • 传媒网站建设公司深圳百度seo优化
  • 公司需要网站 该怎么做公司推广咨询
  • 高中男女做那个视频网站seo做的好的网站
  • 网站建设 摄影服务上海seo网站排名优化公司
  • 网页设计中html代码seo博客网站
  • 怎样建设小游戏网站google关键词搜索技巧
  • 淘宝 客要推广网站怎么做全媒体广告代理
  • 那个b2b网站可以做外贸武汉全网推广
  • 深圳css3网站开发多少钱如何策划一个营销方案
  • 织梦统计网站访问量代码网络营销公司如何建立
  • 外贸营销型网站建设今日最新重大新闻
  • 个性化定制网站长春网络推广优化
  • 合肥庐阳区疫情最新消息seo优化首页
  • h5网站制作接单最新中高风险地区名单
  • 北京市住房城乡建设委网站公司怎么在网上推广
  • 网站建设首页怎样插入视频百度指数在线查询小程序
  • 青州网站制作哪家好aso优化哪家好
  • wordpress做网站优点郑州网站seo优化
  • 宝安做棋牌网站建设找哪家公司好湖南长沙疫情最新消息
  • 四川专业网站建设中国十大企业培训机构排名
  • 怎么切页面做网站灰色词首页排名接单
  • 网站右侧浮动广告代码百度推广代理公司广州