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

吉林一站式网站建设介绍上海电子商务网站制作公司

吉林一站式网站建设介绍,上海电子商务网站制作公司,wordpress分类打开404,淘宝的网站建设的目标进程间的通信#xff1a;多个线程在处理同一个资源#xff0c;但是处理的动作#xff08;线程的动作#xff09;却不相同。 进程间的通信可以让资源进行有效的利用 等待唤醒中的方法#xff1a; wait #xff1a;让线程进入等待状态notify #xff1a;随机唤醒一个线… 进程间的通信多个线程在处理同一个资源但是处理的动作线程的动作却不相同。 进程间的通信可以让资源进行有效的利用 等待唤醒中的方法 wait 让线程进入等待状态notify 随机唤醒一个线程notifyAll 唤醒所有线程 注意等待唤醒中的方法必须要由同一个对象锁调用而这个对象锁可以是任意对象因为等待唤醒中的方法来自Object类而Object类是所有类的父类。而且必须写在同步方法或者同步代码块里面。 下面是包子铺生产包子和顾客买包子的例子 //包子铺 public class baozipu extends Thread{private baozi bao;public baozipu(baozi bao) {this.baobao;}Overridepublic void run() {int count 0;while (true) {synchronized (this.bao) {if (bao.isFlag()) {try {bao.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}if (count % 2 0) {bao.setPi(薄皮);bao.setXian(猪肉馅);} else {bao.setPi(厚皮);bao.setXian(猪肉馅);}count;System.out.println(正在生产 bao.getPi() bao.getXian() 包子.....);try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}bao.setFlag(true);bao.notify();System.out.println(包子做好啦);}}} } //包子 public class baozi {private String pi;private String xian;private boolean flag;public String getPi() {return pi;}public void setPi(String pi) {this.pi pi;}public String getXian() {return xian;}public void setXian(String xian) {this.xian xian;}public boolean isFlag() {return flag;}public void setFlag(boolean flag) {this.flag flag;} } //顾客 public class guge extends Thread{private baozi bao;public guge(baozi bao) {this.bao bao;}Overridepublic void run() {while(true){synchronized(bao){if (bao.isFlag()false){try {bao.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}System.out.println(吃bao.getPi()bao.getXian()包子);bao.setFlag(false);bao.notify();System.out.println(吃完了开始生产包子...);System.out.println(--------------------------);}}} } //测试 public class Test {public static void main(String[] args) {baozi baonew baozi();baozipu bzpnew baozipu(bao);guge ggnew guge(bao);gg.start();bzp.start();} } 如果并发的线程数量很多并且每个线程都是执行一个很短的时间就结束了这样频繁的创建线程和销毁线程就会大大降低系统的效率因为创建线程和销毁线程很消耗时间。 我们可以使用java中的线程池来解决这个问题 线程池就是一个容纳多个线程的容器其中的线程可以反复使用省去了频繁创建线程的时间减少了不必要的资源消耗。当程序第一次启动的时候创建多个线程保存到一个集合中当我们需要使用的时候再从集合中remove出来使用使用remove是因为remove之后线程池中就移除了这个线程而remove的返回值就是我们remove的线程。 线程池会一直开启除非手动使用shutdown方法不建议某个线程被使用完了之后会自动归还给线程池供其他任务使用。 好处 降低资源消耗提高响应速度提高线程的可管理性 线程池的使用步骤 使用线程池的工厂类Executors里面提供的静态方法类newFixedThreadPool生产一个指定线程数量的线程池 创建一个实现Runnable接口的类重写run方法用于设置线程任务 调用ExecutorsService中的submit方法传递线程任务开启线程 最后程序结束的时候可以调用ExecutorsService中的shutdown方法销毁线程池但是不建议销毁因为我们创建线程池本来就是为了重复利用里面的线程的 //Runnable接口的实现类 public class testimpl implements Runnable{Overridepublic void run() {System.out.println(Thread.currentThread().getName()执行);} }//测试类 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class Test {public static void main(String[] args) {ExecutorService es Executors.newFixedThreadPool(2);//创建一个包含两个线程的线程池es.submit(new testimpl());es.submit(new testimpl());es.submit(new testimpl());es.submit(new testimpl());} }
http://www.zqtcl.cn/news/751317/

相关文章:

  • jsp小型网站开发wordpress微博插件
  • app充值网站开发怎么去做网站
  • 合肥建站网站模板word上下页纸张方向
  • 大学跳蚤市场网站建设哈尔滨网站建设
  • 网站开发合同中的知识产权条款怎么给公司建网站
  • 网站代维护wordpress 主题中心
  • 中铁广州建设有限公司网站临安做企业网站的公司
  • 国内可访问的海外网站和应用重庆好玩还是成都好玩
  • 定制开发小程序天津做网站优化的公司
  • 公司网站首页怎么做在线二级域名子域名查询
  • 淮南网站优化公司国内什么网站用asp.net
  • 做数据网站带网站的图片素材
  • 大方县住房城乡建设局网站wordpress 连接flickr
  • 国家建设部网站倪虹邢台新闻最新事件
  • 杭州网站 建设广州金将令做网站怎么样
  • 苏州科建设交通学院网站地方网站类型
  • 怎样做投资理财网站城乡建设部网站第35号令
  • 南昌集团网站建设wordpress去掉rss订阅
  • 郑州做网站的外包公司有哪些宁波 电商平台网站建设
  • 网站平台开发多少钱wordpress文章展示
  • 汕尾市企业网站seo点击软件建设一个网站的步骤有哪些
  • 备案上个人网站和企业网站的区别实名认证域名可以做电影网站吗
  • 顾氏网站建设有限公司怎么样memcache安装wordpress
  • 邯郸网站建设渠道免费做全网解析电影网站赚钱
  • 中铁中基建设集团网站东莞网络优化哪家公司好
  • wordpress免费建站合肥关键词网站排名
  • 中铁建设集团门户网登录网站自己可以建设环保公益网站吗
  • 国内电子商务网站有哪些网站升级中html
  • 影响网站加载速度顺德做网站那家好
  • 如何备份网站的百度怎样建立网站