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

网站建设横条设计网站考虑哪些因素

网站建设横条,设计网站考虑哪些因素,广西金利建设有限公司网站,上海网站注销一、CountDownLatch 1.原理 它内部维护了一个计数器#xff0c;该计数器初始化时设定一个数值#xff0c;表示需要等待的线程数量。每个线程执行完特定任务后会调用CountDownLatch的countDown()方法#xff0c;该方法会将计数器减一。同时#xff0c;另外一个或多个线程可…一、CountDownLatch 1.原理 它内部维护了一个计数器该计数器初始化时设定一个数值表示需要等待的线程数量。每个线程执行完特定任务后会调用CountDownLatch的countDown()方法该方法会将计数器减一。同时另外一个或多个线程可以通过await()方法来等待计数器变为0。一旦计数器为0所有等待的线程就会被唤醒继续执行。 2.主要方法 3.使用步骤 1.创建CountDownLatch对象并指定需要等待的线程数量。 2.在需要等待的线程中调用await()方法进行等待。 3.在其他线程中执行任务完成后调用countDown()方法减少计数器。 //定时计数器大小6 当计数器为0的时间就会释放所有等待线程final CountDownLatch latch new CountDownLatch(6);for (int i 1; i 20; i) {int finalI i;new Thread(()-{if (finalI % 2 0){try {latch.await();} catch (InterruptedException e) {throw new RuntimeException(e);}}else {//减小计数器latch.countDown();}System.out.println(Thread.currentThread().getName() 进门);},String.valueOf(i)).start();}try {//线程等待latch.await();} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println(Thread.currentThread().getName() 出门购物);二、CvclicRarrier 1.原理 它允许一组线程在达到一个共同的屏障点barrier point之前互相等待。它的工作原理是当所有线程都到达屏障点时所有线程被释放并继续执行。 与CountDownLatch不同CyclicBarrier可以被重用因为它的计数器在达到零后会被重置为初始值并且可以在构造函数中指定一个Runnable任务当计数器达到零时该任务会被执行。 2.主要方法 3.使用步骤 1.创建CyclicBarrier对象构造函数需要传入两个参数参与同步的线程数量以及可选的Runnable任务当所有线程到达屏障点时执行 2.创建并启动参与同步的线程 这些线程应该在某个阶段需要等待其他线程一起执行后续操作时调用CyclicBarrier的await()方法 3.等待所有线程到达屏障点 当所有参与同步的线程都调用了await()方法后它们会在屏障点处被阻塞直到所有线程都到达屏障点。一旦所有线程都到达屏障点CyclicBarrier将会执行可选的Runnable任务如果提供了然后释放所有被阻塞的线程继续执行后续操作。 CyclicBarrier cyclicBarrier new CyclicBarrier(8, () - {System.out.println(召唤神龙成功);});for (int i1;i8;i){int finalI i;new Thread(()-{System.out.println(Thread.currentThread().getName() 收集 finalI 龙魂珠);try {cyclicBarrier.await();} catch (InterruptedException e) {throw new RuntimeException(e);} catch (BrokenBarrierException e) {throw new RuntimeException(e);}},String.valueOf(i)).start();}try {cyclicBarrier.await();} catch (InterruptedException e) {throw new RuntimeException(e);} catch (BrokenBarrierException e) {throw new RuntimeException(e);}System.out.println(孙悟空开始许愿);三、Semaphore 1.原理 一种用于控制对共享资源的访问的同步原语。它可以用于限制同时访问某一资源的线程数量或者用于在多个线程之间进行流量控制。 acquire(): 当一个线程希望访问共享资源时它需要调用 acquire() 方法来获取信号量。如果当前信号量计数为正则线程可以继续执行并且信号量计数减一如果当前计数为零则线程会被阻塞直到有其他线程释放信号量。 release(): 当一个线程完成对共享资源的访问时它需要调用 release() 方法来释放信号量。这会将信号量计数加一并且唤醒等待的线程。 2.主要方法 3.使用步骤可以作用于限流 1.创建 Semaphore 对象创建一个 Semaphore 对象。在创建 Semaphore 对象时您需要指定信号量的初始数量这决定了能够同时访问共享资源的线程数量。 2.获取信号量当一个线程希望访问共享资源时它需要调用 acquire() 方法来获取信号量。如果当前信号量计数为正则线程可以继续执行并且信号量计数减一如果当前计数为零则线程会被阻塞直到有其他线程释放信号量。 3.访问共享资源一旦线程成功获取了信号量它就可以访问共享资源了。在这个阶段线程可以执行需要访问共享资源的操作。 4.释放信号量当一个线程完成对共享资源的访问时它需要调用 release() 方法来释放信号量。这会将信号量计数加一并且唤醒等待的线程。 //线程数量 三个停车位 Semaphore semaphore new Semaphore(3); //六辆车 for (int i 1; i 7; i) {new Thread(()-{//acquire() 获取车位try {semaphore.acquire();System.out.println(Thread.currentThread().getName() 找到停车位);TimeUnit.SECONDS.sleep(2);System.out.println(Thread.currentThread().getName() 离开停车位);} catch (InterruptedException e) {throw new RuntimeException(e);} finally {//release()释放 离开车位 只有释放才可以让其他线程进入semaphore.release();}},String.valueOf(i)).start(); }
http://www.zqtcl.cn/news/34849/

相关文章:

  • 上海外贸建站外国扁平化网站
  • mvc架构购物网站开发网站的外链怎么做
  • 长春新建高铁站百度热门排行榜
  • 做软装的网站wordpress博客模板seo
  • 农业电商网站建设pptwordpress输入密码可见内容插件
  • shopex 如何看 网站后台wordpress+缩略图+api
  • 做一个响应网站多少钱购物网站开发毕业设计开题报告
  • 建站平台与建站系统美工培训费用
  • 网站打不开显示asp郑州专业制作网站费用
  • 烟台定制网站建设公司金牛区建设审批网站
  • 猪八戒建站服务wordpress更新php版本
  • 移动端企业网站模板电商公司组织架构
  • 上海企业网站排名优化网页制作价格表
  • 鹤壁专业做网站公司写作网站六大神书
  • 萧山区建设局网站潍坊建设局官方网站
  • 药学专业网站正能量网站ip
  • 怎样查看网站是否备案90设计网站官网入口
  • 手机网站开发框架php手机哪个网站好
  • wap网站开发价钱宁波seo推荐
  • 安徽企业网站制作库尔勒西部建设网站
  • 建设部投诉网站中铁建设集团门户员工登录
  • 聊城市 网站制作网站程序是什么
  • 如何用易语言做网站设计师平台接单
  • 网站显示系统建设中精美ppt模板下载
  • 自助建站系统官网怎么切图做网站
  • 苏州企业网站建设设计网站二级导航
  • 灵山招聘网灵山英才网做灵山专业的招聘网站软件项目管理流程
  • 免费影视网站入口大全建筑效果图网站推荐
  • 免费个人网站建设报价wordpress获取上传
  • 做视频网站用什么格式好三大设计软件哪个好