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

微信 购物网站开发学设计什么培训机构好

微信 购物网站开发,学设计什么培训机构好,网站只能用ip访问网站吗,做网站需要什么配置暂停线程意味着此线程还可以恢复运行。在Java多线程中,可以使用suspend()方法暂停线程,使用resume()方法恢复线程的执行。 suspend与resume方法的使用 示例代码如下: public class MyThread extends Thread{private long i 0;Overridepub…

  暂停线程意味着此线程还可以恢复运行。在Java多线程中,可以使用suspend()方法暂停线程,使用resume()方法恢复线程的执行。

suspend与resume方法的使用

示例代码如下:

public class MyThread extends Thread{private long i = 0;@Overridepublic void run() {while(true){i++;}}public long getI() {return i;}public void setI(long i) {this.i = i;}
}
public class Run {public static void main(String[] args) {try{MyThread t = new MyThread();t.start();Thread.sleep(5000);//A段t.suspend();System.out.println("A= " +System.currentTimeMillis()+" i="+t.getI());Thread.sleep(5000);System.out.println("A= " +System.currentTimeMillis()+" i="+t.getI());//B段t.resume();Thread.sleep(5000);//C段t.suspend();System.out.println("B= " +System.currentTimeMillis()+" i="+t.getI());Thread.sleep(5000);System.out.println("B= " +System.currentTimeMillis()+" i="+t.getI());}catch(Exception e){e.printStackTrace();}}
}

运行结果:
这里写图片描述
从控制台的打印的时间来看,线程的确被暂停了,而且还恢复成运行的状态。

suspend与resume方法的缺点-独占

  在使用suspend与resume方法时,如果使用不当,极易造成公共的同步对象独占,使其他线程无法访问公共同步对象。示例代码如下:

public class SynchronizedObject {synchronized public void printString(){System.out.println("begin");if(Thread.currentThread().getName().equals("a")){System.out.println("a线程永远 suspend!");Thread.currentThread().suspend();}System.out.println("end");}
}
public class Run {public static void main(String[] args) throws InterruptedException {SynchronizedObject s = new SynchronizedObject();Thread t1 = new Thread(){@Overridepublic void run() {s.printString();}};t1.setName("a");t1.start();Thread.sleep(1000);Thread t2 = new Thread(){@Overridepublic void run() {System.out.println("t2 启动了,但进入不printString()方法!");s.printString();}};t2.start();}
}

执行结果如下:
这里写图片描述
还有另外一种独占锁的情况,创建如下代码:

public class MyThread extends Thread{private long i = 0;@Overridepublic void run() {while(true){i++;}}
}
public class Run2 {public static void main(String[] args) throws InterruptedException {MyThread t = new MyThread();t.start();Thread.sleep(1000);t.suspend();System.out.println("main end");}
}

执行结果如下:
这里写图片描述
但是如果将代码改为如下:

public class MyThread extends Thread{private long i = 0;@Overridepublic void run() {while(true){i++;System.out.println("i="+i);}}
}

则输入结果如下:
这里写图片描述
控制台并不打印main end。出现这样情况的原因是,当程序运行到println()方法内部停止,同步锁未被释放。在上面也有讲过println()方法内部是同步的。这样就导致PrintStream对象的println()方法一直呈”暂停”状态,并且“锁未释放“,所有main线程的println迟迟不能打印。

suspend与resume方法的缺点-不同步

  在使用suspend与resume方法时也很容易出现因为线程的暂停而导致数据不同的情况。示例代码如下:

public class MyObject {private String username = "1";private String password = "11";public void setValue(String u,String p){this.username = u;if(Thread.currentThread().getName().equals("a")){System.out.println("停止a线程");Thread.currentThread().suspend();}this.password = p;}public void printUserNamePassword(){System.out.println(username+ " "+ password);}
}
public class Run {public static void main(String[] args) throws InterruptedException {MyObject m = new MyObject();Thread t1 = new Thread(){@Overridepublic void run() {m.setValue("a", "aa");}};t1.setName("a");t1.start();Thread.sleep(1000);Thread t2 = new Thread(){@Overridepublic void run() {m.printUserNamePassword();}};t2.start();}
}

运行结果如下:
这里写图片描述

http://www.hkea.cn/news/450272/

相关文章:

  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广
  • 中国公司查询网站网络公司起名
  • wordpress邮箱内容更改一键关键词优化
  • 楼市最新消息2022年房价走势seo网络推广经理
  • wordpress免费中文企业主题seo权重优化软件
  • 周口网站建设哪家好济南专业seo推广公司
  • 济南网站忧化怎么把抖音关键词做上去
  • 网站建设与维护的题目网站点击软件排名
  • 网站收录服务企业网络的组网方案
  • nba排名灰色词seo排名
  • 如何建自己的个人网站深圳市seo上词多少钱
  • 迎访问中国建设银行网站_永久免费的电销外呼系统
  • 类似AG网站建设网络营销的十大特点
  • 河北盘古做的网站用的什么服务器品牌策划与推广
  • 做网站开发的是不是程序员品牌营销与推广
  • 安卓android软件seo搜索引擎优化方式
  • 网站设计培训课程引流推广平台