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

江苏省灌云建设局5.0网站男女做暖暖到网站

江苏省灌云建设局5.0网站,男女做暖暖到网站,在线直播网站怎么做,wordpress 别名获取id好长时间没有复习线程状态这块#xff0c;读并发编程实战正好看着这块#xff0c;顺便复习一下#xff1a; 1.线程的五种状态#xff1a; 2.线程五种状态的转换图#xff1a; wait()会立刻释放synchronized(obj)中的锁以便其它线程可以执行obj.notify 但是notify() 不会立…好长时间没有复习线程状态这块读并发编程实战正好看着这块顺便复习一下 1.线程的五种状态 2.线程五种状态的转换图 wait()会立刻释放synchronized(obj)中的锁以便其它线程可以执行obj.notify 但是notify() 不会立即释放synchronize(obj)中必须等nofity所在线程执行完 synchronize(obj)块中所有代码才能释放这把锁Thread.sleep(long millisecond) 来挂起线程sleep 可以给优先级低的线程执行但是它不会释放锁就是说如果有synchronizde 代码块其他的线程仍然不能访问Thread.yield()可以给其他线程执行的机会。如果没有其他线程此方法没有任何作用于sleep() 类似就是有synchronize则同步块其他线程仍然不能访问共享数据。总之参考https://blog.csdn.net/wangpei555/article/details/61414447 调用join方法后线程阻塞线程失去对该对象锁的持有失去cpu.sleep方法执行后处于阻塞状态线程会交出cpu对该对象的锁没有交出其他线程也无法访问该对象。 调用yield方法会让当前线程交出CPU权限让CPU去执行其他的线程。它跟sleep方法类似同样不会释放锁。3.看一个简单的生产者和消费者的列子 生产者的列子 package com.asiainfo.producer;public class Producer extends Thread {private CubbyHole cubbyhole;private int num;Producer(CubbyHole cubbyhole, int num) {this.cubbyhole cubbyhole;this.num num;}Overridepublic void run() {for (int i 0; i 10; i) {cubbyhole.put(i);System.out.println(Producer# this.num put: i);}try {sleep((int) Math.random() * 100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}// TODO Auto-generated method stubsuper.run();} }消费者 package com.asiainfo.producer;public class Consumer extends Thread {private CubbyHole cubbyhole;private int num;Consumer(CubbyHole cubbyhole,int num){this.cubbyholecubbyhole;this.numnum;}Overridepublic void run() {// TODO Auto-generated method stubint value0;for(int i0;i10;i){valuecubbyhole.get();System.out.println(Cusumber#this.numgotvalue);}super.run();}}共享的对象 像CubbyHole 这样被多个线程同步线程共享的对象称为条件遍历这里的条件变量就相当于一个监视器java语言就是通过监视器来实现同步的。一个monitor 就相当于一个只能容纳一个线程的小盒子在一点特定的时间里只能容纳一个线程进入monitor,而其他线程将被暂停知道当前线程离开这个盒子。 package com.asiainfo.producer;public class CubbyHole {private int seq;public synchronized int get() {return seq;}public synchronized void put(int seq) {this.seq seq;}}测试类 package com.asiainfo.producer;public class Person {public static void main(String[] args) {CubbyHole cubbyHole new CubbyHole();Consumer consumer new Consumer(cubbyHole,1);Producer producer new Producer(cubbyHole,2);producer.start();consumer.start();}}产生的结果 由于线程中不能保证当producer 生产一个数据就会被consumer 消费有可能存在竞争锁过程中消费者快于生产者或者是生产者 快于消费者的状态但是这两种状况都不是我们想要的 改进后的CUbberHole 类 package com.asiainfo.producer;public class CubbyHole {private int seq;//改进private boolean available false;public synchronized int get() {while(availablefalse){try {/*** wait()会立刻释放synchronized(obj)中的锁以便其它线程可以执行obj.notify*/wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}availablefalse;/*** 但是notify() 不会立即释放synchronize(obj)中必须等nofity所在线程执行完 * synchronize(obj)块中所有代码才能释放这把锁*/notify();return seq;}public synchronized void put(int value) {while(availabletrue){try {wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}seqvalue;availabletrue;notify();}}执行结果
http://www.pierceye.com/news/951473/

相关文章:

  • 深圳注册投资公司的条件网络优化推广公司
  • 网站流量统计工具有哪些电子商务网络营销是什么
  • asp+access网站开发实例精讲网站建设开发的主要流程
  • 电子商城开发网站建设做网站推广怎么跟客户沟通
  • 个人网站排名欣赏哪个网站可以做笔译兼职
  • 创建一个网站主页wordpress英文博客主题
  • 天津建站模板搭建电子商务网页设计与网站建设论文
  • 网站空间可以自己做服务器网站环境搭建教程
  • 建一个网站素材哪里来长安城乡建设开发有限公司网站
  • 网站内容由什么组成部分组成微信静首页制作代码
  • 精品课程网站开发平台福建省建设厅网站 保证金
  • 网站后台 不能删除文章贵州建设厅网站首页
  • 重庆市园林建设有限公司网站酒店平台网站建设
  • c 网站开发实例教程超级外链工具 增加外链中
  • ip怎么做网站外贸网站建设哪里好
  • 市网站建设网站排名查询alexa
  • 西安建设网站首页网络互联网推广
  • 百度搜索网站显示图片wordpress 工作室
  • 网站页面模板 建设中集团做网站优势
  • 提供佛山网站制作大连市建设工程集团有限公司
  • 北京网站设计外包公司价格网站怎么备案在哪里
  • 视频网站广告代码网站建设怎么插图片
  • 网站建设需要敲代码吗外贸网站商城
  • wordpress增加网站网页关键词企业网站的需求是什么
  • 口碑好网站建设电话什么是搜索引擎优化用一句话概括
  • wordpress的vps建站流程ui是什么意思
  • 广州专业的网站建设公司哪家好wordpress博客优秀
  • 没有服务器建网站免费开发软件制作平台
  • 高端品牌网站建设明细报价报青岛市公共资源交易网
  • 余姚 网站建设济南网站开发薪酬