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

友情链接如何选择网站网络公司排名及分析

友情链接如何选择网站,网络公司排名及分析,天津seo外包团队,网页游戏小游戏生产者#xff0c;消费者模式synchronizedlock condition对象等待唤醒线程定制化调用通信一个线程生产#xff0c;一个线程消费。 两种实现方式#xff1a; synchronized关键字灵活的lock锁 一个线程新增1#xff0c;一个消费0#xff0c;按顺序进行。保证最后的数据为… 生产者消费者模式synchronizedlock condition对象等待唤醒线程定制化调用通信一个线程生产一个线程消费。 两种实现方式 synchronized关键字灵活的lock锁 一个线程新增1一个消费0按顺序进行。保证最后的数据为0synchronized /*等待 唤醒 生产 通知* 1. 高内聚的情况下 多线程操作同一个资源* 2. 判断 干活 通知* 3. 防止虚假唤醒 (while 替代if解决)** author echo lovely* date 2021/2/17 11:12*//*** thread demo by synchronized keywords*/ class AirCondition {// wait || awaitprivate int num 0;synchronized void increment() throws InterruptedException {while (num ! 0) {// 等待 不生产this.wait();}num;System.out.println(Thread.currentThread().getName() \t num);// 唤醒其它线程消费this.notifyAll();}synchronized void decrease() throws InterruptedException {while (num 0) {// 没有东西 需要等待 不能消费this.wait();}this.num--;System.out.println(Thread.currentThread().getName() \t num);// 唤醒生产者生产this.notifyAll();}}private static void waitNotify() {AirCondition ac new AirCondition();new Thread(() - {for (int i 0; i 10; i) {try {ac.increment();} catch (InterruptedException e) {e.printStackTrace();}}}, A).start();new Thread(() - {for (int i 0; i 10; i) {try {ac.decrease();} catch (InterruptedException e) {e.printStackTrace();}}}, B).start();new Thread(() - {for (int i 0; i 10; i) {try {ac.increment();} catch (InterruptedException e) {e.printStackTrace();}}}, C).start();new Thread(() - {for (int i 0; i 10; i) {try {ac.decrease();} catch (InterruptedException e) {e.printStackTrace();}}}, D).start(); }lock condition对象等待唤醒 /*** thread demo by lock*/ class AirCondition1 {// lock - product or consumerprivate int num 0;// 非公平锁private final Lock lock new ReentrantLock();// 用于lock的等待和唤醒 monitorprivate final Condition condition lock.newCondition();void increment() {lock.lock();try {while (num ! 0) {condition.await();}num;System.out.println(Thread.currentThread().getName() \t num);condition.signalAll();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}void decrease() {lock.lock();try {while (num 0) {// 没有可消费 等待condition.await();}num--;System.out.println(Thread.currentThread().getName() \t num);// 唤醒生产者生产condition.signalAll();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}} private static void awaitSignal() {AirCondition1 condition new AirCondition1();// thread one productnew Thread(() - {for (int i 0; i 10; i) {condition.increment();}}, Rye).start();// thread two consumernew Thread(() - {for (int i 0; i 10; i) {condition.decrease();}}, sevenYoungAiRye).start();// thread three productnew Thread(() - {for (int i 0; i 10; i) {condition.increment();}}, hh1).start();// thread four consumernew Thread(() - {for (int i 0; i 10; i) {condition.decrease();}}, hh2).start();}线程定制化调用通信 A 线程do sth… B 线程do sth… C线程do sthh… 如何保证上面轮询干事 使用Condtion对象, 拿到对象的锁。 package top.bitqian.demo1;import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/*** 题目:* 三个线程之间 打印 5 10 15 次。轮询打印10次。* author echo lovely* date 2021/2/17 18:43*/class ShareData {private int num 1; // 1 A, 2 B, 3 Cprivate final Lock lock new ReentrantLock();// 三把钥匙 用于解锁Condition c1 lock.newCondition();Condition c2 lock.newCondition();Condition c3 lock.newCondition();void print5() {try {lock.lock();// 1. 判断while (num ! 1) {// 等待c1.await();}// 2. 干活for (int i 0; i 5; i) {System.out.println(Thread.currentThread().getName() \t i);}// 3. 通知num 2;// 唤醒第二个线程c2.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}void print10() {try {lock.lock();// 线程2 等待while (num ! 2) {c2.await();}for (int i 0; i 10; i) {System.out.println(Thread.currentThread().getName() \t i);}// 通知三个线程num 3;c3.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}void print15() {try {lock.lock();while (num ! 3) {c3.await();}for (int i 0; i 15; i) {System.out.println(Thread.currentThread().getName() \t i);}// 通知线程1num 1;c1.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}}public class ConditionDemo {public static void main(String[] args) {ShareData shareData new ShareData();new Thread(() - {for (int i 0; i 10; i) {shareData.print5();}}, A).start();new Thread(() - {for (int i 0; i 10; i) {shareData.print10();}}, B).start();new Thread(() - {for (int i 0; i 10; i) {shareData.print15();}}, C).start();}}
http://www.zqtcl.cn/news/559289/

相关文章:

  • 网站建设尺寸像素是多少广州商城型网站建设
  • 重庆自助建站模板简述网络营销的特点
  • 企业网站托管一个月多少钱网页设计规范2018
  • 网站建设费用摊销会计分录合肥网站建设哪里好
  • 郑州市建设工程造价信息网站关于工程项目建设的网站
  • 网站做淘宝客收入咋样景区门户网站建设方案
  • 遵义做网站推广西安都有哪些公司
  • 万网建网站流程产品展示网站模板php
  • 新津县建设局网站网站做301
  • 网站域名续费如何建设一个简易网站
  • 网站整体迁移该怎么做wordpress 图片调用api接口
  • 网站获得流量最好的方法是什么 ( )汕头建设学校的网站
  • 网上下载的网站后台安全吗仿系统之家网站源码
  • 网站实名审核高等教材电工学久久建筑网
  • 化学试剂购买网站网站节点加速
  • 桂林城乡建设局网站在线咨询免费
  • 长治网站设计制作网站ps怎么做网站导航内嵌式
  • 网站 橙色前台网站开发
  • 滨海网站建设服务商电子商务网站建设与维护pdf
  • 企业网站建设方案效果h5网页制作app
  • 国内搜索引擎网站免费无线
  • 龙岩做网站价格室内建筑设计
  • 闲鱼上面给人做网站造退款微信登录建设银行网站
  • 无锡网站推广公司网络营销课程设置
  • dede 网站根目录北京好的设计公司
  • 网站关键词重复wordpress 影响力
  • 外包商网站怎么做php网站转移
  • 怎么做自己的网站推广产品企业建站 平台
  • 河北做网站公司网站建设团队扬州
  • 114物流网站怎么做免费注册163免费邮箱申请