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

学做包子馒头的网站0505网页制作与网站建设

学做包子馒头的网站,0505网页制作与网站建设,销售网站建设公司,做任务赚佣金的正规平台这里写目录标题 RunnableRunable接口实现多线程使用Runnable接口实现多线程的好处线程同步 - 三个窗口买票lock实现同步锁 Runnable Runable接口实现多线程 实现 Runnable 接口 定义一个类 MyRunnable 实现 Runnable 接口 在 MyRunnable 类中重写 run() 方法 创建 Thread 类… 这里写目录标题 RunnableRunable接口实现多线程使用Runnable接口实现多线程的好处线程同步 - 三个窗口买票lock实现同步锁 Runnable Runable接口实现多线程 实现 Runnable 接口 定义一个类 MyRunnable 实现 Runnable 接口 在 MyRunnable 类中重写 run() 方法 创建 Thread 类的对象把 MyRunnable 对象作为构造方法的参数 启动线程 demo: 定义一个类作为Runnable接口实现类 package com.itxs.demo05;/*** Classname : MyRunnable* Description : TODO* Author : lin_refuelqq.com*/ public class MyRunnable implements Runnable {Overridepublic void run() {for (int i 0; i 20; i) {System.out.println(Thread.currentThread().getName() i i);}} }测试类demo01 package com.itxs.demo05;/*** Classname : demo01* Description : TODO* Author : lin_refuelqq.com*/ public class demo01 {public static void main(String[] args) {MyRunnable mr new MyRunnable();//创建线程Thread mt01 new Thread(mr, 线程01);//Runnable接口实现类对象作为参数进行传递Thread mt02 new Thread(mr, 线程02);Thread mt03 new Thread(mr, 线程03);//匿名内部类方式实现new Thread(new Runnable() {Overridepublic void run() {for (int i 0; i 30; i) {System.out.println(Thread.currentThread().getName() i i);}}},匿名线程).start();// 线程开启mt01.start();mt02.start();mt03.start();} }使用Runnable接口实现多线程的好处 相比继承 Thread 类实现 Runnable 接口的好处 避免了 Java 单继承的局限性 适合多个程序的代码同时处理一个资源的情况把线程和程序的代码、数据有效的分离较好的体现了面向对象程序设计的思想 线程同步 - 三个窗口买票 需求德云社封箱演出共有 100 张门票设置三个窗口买票设计模拟买票的程序 思路 定义一个 SellTickets 实现 Runnable 接口里面定义一个成员private int tickets 100 在 SellTickets 类中重写 run() 方法实现买票 判断剩余票数是否大于 0是就卖并告知是哪个窗口卖出的 卖掉一张之后要对应减一 没有票了也可能有人来买用死循环让买票动作一直持续 顶一个测试类 SellTicketsTest里面有 main() 方法 创建 SellTickets 类对象 创建三个 Thread 类的对象把 SellTickets 对象作为构造方法的参数并给出对应的窗口名称 启动线程 sycnchronized(任意对象){}同步语句块多个线程操作同一个资源时当某个线程执行同步语句块里面的代码时别的线程是无法执行的只有当执行同步语句块线程执行完里面同步语句块的内容时其他线程才能进行访问 是否有多线程环境 是否有共享数据 是否有多条语句操作共享项数据 参考文章 demo: 卖票的动作,注意同步语句块的用法 package com.itxs.demo06;/*** Classname : SellTickets* Description : TODO* Author : lin_refuelqq.com*/ public class SellTickets implements Runnable {private int tickets 100;// 门票数量为100Overridepublic void run() {// 定义死循环一直进行买票while (true){// 同步语句块一个窗口抢到卖票权其他窗口无法卖出同一个票synchronized (this){// 判断门票数是否大于0满足条件进行卖票if(tickets 0){//打印出票System.out.println(Thread.currentThread().getName() 正在买第 - this.tickets张门票);// 每次打印出票后票数减去1this.tickets --;}}// 每个窗口卖出票后等待出票try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}} }test测试类 package com.itxs.demo06;/*** Classname : test* Description : TODO 测试类* Author : lin_refuelqq.com*/ public class test {public static void main(String[] args) {//创建卖票动作的线程SellTickets st new SellTickets();// 创建三个窗口进行买票Thread windows01 new Thread(st, 窗口1);Thread windows02 new Thread(st, 窗口2);Thread windows03 new Thread(st, 窗口3);// 开始买票windows01.start();windows02.start();windows03.start();} }lock实现同步锁 还是上面的案例通过lock方式实现线程同步 买票的类 package com.itxs.demo06;import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/*** Classname : SellTickets* Description : TODO* Author : lin_refuelqq.com*/ public class SellTickets implements Runnable {private int tickets 100;// 门票数量为100private Lock lock new ReentrantLock();Overridepublic void run() {// 定义死循环一直进行买票while (true){// 同步语句块一个窗口抢到卖票权其他窗口无法卖出同一个票ticket();// 每个窗口卖出票后等待出票try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}// 同步方法private /*synchronized*/ void ticket() {//synchronized (this){lock.lock();//上锁// 判断门票数是否大于0满足条件进行卖票if(this.tickets 0){//打印出票System.out.println(Thread.currentThread().getName() 正在买第 - this.tickets张门票);// 每次打印出票后票数减去1this.tickets --;}//}lock.unlock();//开锁注意不要忘记开锁} }test测试类 package com.itxs.demo06;/*** Classname : test* Description : TODO 测试类* Author : lin_refuelqq.com*/ public class test {public static void main(String[] args) {//创建卖票动作的线程SellTickets st new SellTickets();// 创建三个窗口进行买票Thread windows01 new Thread(st, 窗口1);Thread windows02 new Thread(st, 窗口2);Thread windows03 new Thread(st, 窗口3);// 开始买票windows01.start();windows02.start();windows03.start();} }
http://www.zqtcl.cn/news/534134/

相关文章:

  • 什么做网站做个网站一般要多少钱啊做网站界面尺寸
  • 装修网站怎样做网站中如何做图片轮播
  • 未备案网站如何加cdn河北网站制作
  • 出版社网站建设方案微信公众号h5网站开发
  • 南京建行网站云主机开网站教程
  • 炫酷表白网站在线制作微网站栏目图标
  • 西安做兼职网站设计昆山做网站的公司有哪些
  • vue手机网站开发买域名价格
  • 济南网站推广优化外包合肥住房和城乡建设部网站
  • 商品定制平台网站江苏港口建设费申报网站
  • 仿站酷网站模板网站建设捌金手指花总六
  • 南通网站建设计划书抖音关键词seo系统
  • 怎么做服务器网站下载链接生产类营销型网站
  • 做网站网站内容怎么找微信公众号免费做影视网站
  • 投资公司网站建设意义做一个网站成本大概多少钱
  • 网站建设的简洁性wordpress积分换购
  • 手机网站赏析做外贸女装有哪些网站有哪些
  • 网站建设与管理考察报告建材网站开发
  • 张家港专业做网站网站点击量 哪里查询
  • 网站设计软件开发论文网站建设的参考文献
  • 专业建筑工程网站陇西做网站的公司
  • 请别人做网站会不会被盗有创意的广告图片及赏析
  • qq官方网站在家有电脑怎么做网站
  • 做计量检定的网站网站建设专业可行性分析
  • 上饶市建设局网站电脑课做网站所需的软件
  • 广州论坛建站模板网站开发流程原理
  • 网站开发深入浅出 - python篇四川网络营销
  • 做外贸比较好用的网站有哪些网站logo教程
  • 自适应产品网站模板坪地网站建设信息
  • 如何免费推广网站简历生成网站