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

服装企业的网站建设Wordpress 相同tag

服装企业的网站建设,Wordpress 相同tag,免费咨询医生的平台,wordpress 网校插件欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持#xff01; 在Java多线程编程中#xff0c;合理地控制线程的执行是至关重要的。wait()和sleep()是两个常用的方法#xff0c;它们都可以用来暂停线程的执行#xff0c;但它们之间存在着显著的差异。本文将详… 欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持 在Java多线程编程中合理地控制线程的执行是至关重要的。wait()和sleep()是两个常用的方法它们都可以用来暂停线程的执行但它们之间存在着显著的差异。本文将详细探讨这两个方法的区别并提供一个实际的编程示例来展示如何使用它们来控制线程的执行顺序。 当你被罚站时,需要等待解除罚站的指令才能离开;                而当你睡觉时,到了一定时间自然就会醒来; wait()与sleep()概述 wait() 定义wait()是Object类的一个方法它使得调用它的线程释放对象的锁并进入对象的等待池wait set。 用途主要用于线程间的协作特别是当一个线程需要等待另一个线程完成某些操作时。 锁状态调用wait()的线程必须拥有对象的锁并且在调用后会释放这个锁。 sleep() 定义sleep()是Thread类的一个静态方法它使得调用它的线程暂停执行指定的时间。 用途通常用于控制线程的执行时间或者在不释放锁的情况下让其他线程有机会执行。 锁状态调用sleep()的线程不会释放任何锁。 wait()必须在同步方法或块中调用。 sleep()可以在任何地方调用。 区别详解 锁状态和对象监视器 wait()需要在同步方法或块中调用因为它依赖于对象的锁。调用后线程会释放锁并进入等待状态。 sleep()可以在任何地方调用不需要在同步方法或块中且不会释放任何锁。 响应中断 在wait()和sleep()期间如果线程被中断都会抛出InterruptedException异常。 用途 wait()通常用于线程间的协作如生产者-消费者问题。 sleep()通常用于控制线程的执行时间或者在不释放锁的情况下让其他线程有机会执行。 返回到执行状态 wait()在被唤醒后需要重新获得对象的锁才能继续执行。 sleep()在睡眠时间结束后自动继续执行不需要重新获得锁。 实际编程示例 以下是一个使用wait()和sleep()来控制线程执行顺序的示例 有三个线程线程名称分别为abc。 每个线程打印自己的名称。需要让他们同时启动并按 cba的顺序打印 使用 wait() 实现:  package Thread;public class Demo11 {private static Object locker new Object();private static int state 1;public static void main(String[] args) throws InterruptedException {//通过state这个变量作为判断条件,不满足该条件的线程进入等待,满足条件的线程则先打印,//然后改变条件,通过notify唤醒其他线程,继续判断,打印;Thread thread1 new Thread(() - {synchronized (locker) {while(state ! 1) {try {locker.wait();}catch (InterruptedException e) {e.printStackTrace();}}System.out.println(C);state 2;locker.notify();}});Thread thread2 new Thread(() - {synchronized (locker) {while(state ! 2) {try {locker.wait();}catch (InterruptedException e) {e.printStackTrace();}}System.out.println(B);state 3;locker.notify();}});Thread thread3 new Thread(() - {synchronized (locker) {while(state ! 3) {try {locker.wait();}catch (InterruptedException e) {e.printStackTrace();}}System.out.println(A);state 1;locker.notify();}});thread1.start();thread2.start();thread3.start();thread1.join();thread2.join();thread3.join();} } 在这个示例中我们使用了一个共享对象locker作为锁并通过state变量来控制线程的执行顺序。每个线程在执行前都会检查state变量如果不符合条件就会调用wait()方法等待。当一个线程执行完毕后它会更新state变量并调用notify()方法来唤醒其他等待的线程。 使用 sleep() 实现 package Thread;public class Demo13 {//sleep版 // 有三个线程线程名称分别为abc。 // 每个线程打印自己的名称。 // 需要让他们同时启动并按 cba的顺序打印public static void main(String[] args) throws InterruptedException {Thread thread1 new Thread(() - {try {Thread.sleep(200);}catch (InterruptedException e) {e.printStackTrace();}System.out.println(C);});Thread thread2 new Thread(() - {try {Thread.sleep(400);}catch (InterruptedException e) {e.printStackTrace();}System.out.println(B);});Thread thread3 new Thread(() - {try {Thread.sleep(600);}catch (InterruptedException e) {e.printStackTrace();}System.out.println(A);});thread1.start();thread2.start();thread3.start();thread1.join();thread2.join();thread3.join();} }在这个实例中,我们不需要使用synchronized锁来帮助我们控制进程,而是单纯通过每个线程的睡眠时间不同,利用时间差来实现规定的打印顺序; 这种方法虽然更加直观,但请注意这种方法并不是线程同步的推荐做法因为它依赖于硬编码的延迟这可能会导致不可预测的行为特别是在不同的系统或不同的负载条件下。通常使用wait和notify或ReentrantLock和Condition来实现线程间的协调是更可靠和可控的方法。  结论 理解wait()和sleep()的区别对于编写高效的多线程程序至关重要。wait()和sleep()都可以用来暂停线程的执行但它们在锁状态、用途、中断响应等方面有着显著的不同。正确使用这些方法可以帮助你更好地控制线程的执行顺序和协作。
http://www.laogonggong.com/news/123472.html

相关文章:

  • 网站开发人员属于什么企业网站注册
  • 上海网站定制设计图如何制作个人主页
  • 太原市住房和城乡建设局网站首页福田网站制作公司
  • 网站建设控制wordpress生成静态
  • 做网站功能如何做企业网站营销
  • 网站加背景音乐丰联汽配网站建设成本
  • 网站建设优化推广网站建设网页制作教程
  • 做网站话术网站背景色
  • 西宁平台网站建设线下推广怎么做
  • 网站做强制解析wordpress搬迁后多媒体库无法
  • 免费访问国外网站的应用不同接入商备案网站
  • 江苏省高职重点专业群建设网站展示型网站建设模板
  • 国内优秀网站欣赏没有网站也可以做cpa
  • 网站建设教程公司内蒙古赤峰市信息网官网
  • 做详情页哪个网站好微投票网站
  • 视频连接网站怎么做深圳互联网推广公司排名
  • 移动端网站建设服务商怎么做网站的搜索功能
  • 网站建设与维护 目录h5制作工具手机版
  • 做瞹瞹嗳视频网站在线观看网站开发邮件
  • 网站死链怎么办个人开发微信平台
  • 网站开发php做下载网站赚钱
  • 租房网站开发文献综述模板网络公关在哪些方面能发挥作用
  • 自己怎么做鲜花网站烟台网站的建设
  • c 做网站看什么书北京注册公司地址有什么要求
  • 京东客网站怎么做建设部执业注册网站
  • 网站开发 合同seo教学网站
  • 数码产品网站建设网站建设公司软件开
  • 桂林公司做网站wordpress回到顶端插件
  • 长沙建网站联系电话免费推广app工作好做吗
  • 珠海企业网站建设服务专业做轴承的网站