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

做外快的网站服务器做ssr后还可以做网站吗

做外快的网站,服务器做ssr后还可以做网站吗,电销做网站的话术,对象存储oss做视频网站1 CountDownLatch#xff08;线程计数器 #xff09; CountDownLatch类位于java.util.concurrent 包下#xff0c;利用它可以实现类似计数器的功能。比如有一个任务 A#xff0c;它要等待其他 4 个任务执行完毕之后才能执行#xff0c;此时就可以利用 CountDownLatch 来实…1 CountDownLatch线程计数器 CountDownLatch类位于java.util.concurrent 包下利用它可以实现类似计数器的功能。比如有一个任务 A它要等待其他 4 个任务执行完毕之后才能执行此时就可以利用 CountDownLatch 来实现这种功能了。 2 CyclicBarrier回环栅栏-等待至 barrier 状态再全部同时执行 字面意思回环栅栏通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后CyclicBarrier 可以被重用。我们暂且把这个状态就叫做 barrier当调用 await()方法之后线程就处于 barrier 了。CyclicBarrier 中最重要的方法就是 await 方法它有 2 个重载版本 1public int await()用来挂起当前线程直至所有线程都到达 barrier 状态再同时执行后续任务public int await(long timeout, TimeUnit unit)让这些线程等待至一定的时间如果还有线程没有到达 barrier 状态就直接让到达 barrier 的线程执行后续任务。 具体使用如下另外 CyclicBarrier 是可以重用的。 3 Semaphore信号量-控制同时访问的线程个数 Semaphore 翻译成字面意思为 信号量Semaphore 可以控制同时访问的线程个数通过 acquire() 获取一个许可如果没有就等待而 release() 释放一个许可。Semaphore 类中比较重要的几个方法 1. public void acquire(): 用来获取一个许可若无许可能够获得则会一直等待直到获得许 可。 2. public void acquire(int permits):获取 permits 个许可 3. public void release() { } :释放许可。注意在释放许可之前必须先获获得许可。 4. public void release(int permits) { }:释放 permits 个许可上面 4 个方法都会被阻塞如果想立即得到执行结果可以使用下面几个方法 1. public boolean tryAcquire():尝试获取一个许可若获取成功则立即返回 true若获取失 败则立即返回 false 2. public boolean tryAcquire(long timeout, TimeUnit unit):尝试获取一个许可若在指定的 时间内获取成功则立即返回 true否则则立即返回 false 3. public boolean tryAcquire(int permits):尝试获取 permits 个许可若获取成功则立即返 回 true若获取失败则立即返回 false 4. public boolean tryAcquire(int permits, long timeout, TimeUnit unit): 尝试获取 permits 个许可若在指定的时间内获取成功则立即返回 true否则则立即返回 false 5. 还可以通过 availablePermits()方法得到可用的许可数目。 例子若一个工厂有5 台机器但是有8个工人一台机器同时只能被一个工人使用只有使用完 了其他工人才能继续使用。那么我们就可以通过 Semaphore 来实现 int N 8; //工人数 Semaphore semaphore new Semaphore(5); //机器数目 for(int i0;iN;i) new Worker(i,semaphore).start(); } static class Worker extends Thread{ private int num; private Semaphore semaphore; public Worker(int num,Semaphore semaphore){ this.num num; this.semaphore semaphore; } Override public void run() { try { semaphore.acquire(); System.out.println(工人this.num占用一个机器在生产...); Thread.sleep(2000); System.out.println(工人this.num释放出机器); semaphore.release(); } catch (InterruptedException e) { e.printStackTrace(); } } CountDownLatch 和 CyclicBarrier 都能够实现线程之间的等待只不过它们侧重点不同CountDownLatch 一般用于某个线程 A 等待若干个其他线程执行完任务之后它才执行而 CyclicBarrier 一般用于一组线程互相等待至某个状态然后这一组线程再同时执行另外CountDownLatch 是不能够重用的而 CyclicBarrier 是可以重用的。Semaphore 其实和锁有点类似它一般用于控制对某组资源的访问权限。 4 volatile 关键字的作用 关键字的作用变量可见性、禁止重排序  Java 语言提供了一种稍弱的同步机制即 volatile 变量用来确保将变量的更新操作通知到其他线程。volatile 变量具备两种特性volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方因此在读取 volatile 类型的变量时总会返回最新写入的值。变量可见性         其一是保证该变量对所有线程可见这里的可见性指的是当一个线程修改了变量的值那么新的值对于其他线程是可以立即获取的。禁止重排序 volatile 禁止了指令重排。比 sychronized 更轻量级的同步锁 在访问 volatile 变量时不会执行加锁操作因此也就不会使执行线程阻塞因此 volatile 变量是一种比 sychronized 关键字更轻量级的同步机制。volatile 适合这种场景一个变量被多个线程共享线程直接给这个变量赋值。 当对非 volatile 变量进行读写的时候每个线程先从内存拷贝变量到 CPU 缓存中。如果计算机有多个 CPU每个线程可能在不同的 CPU 上被处理这意味着每个线程可以拷贝到不同的 CPUcache 中。而声明变量是 volatile 的JVM 保证了每次读变量都从内存中读跳过 CPU cache这一步。适用场景         值得说明的是对 volatile 变量的单次读/写操作可以保证原子性的如 long 和 double 类型变量但是并不能保证 i这种操作的原子性因为本质上 i是读、写两次操作。在某些场景下可以代替 Synchronized。但是,volatile 的不能完全取代 Synchronized 的位置只有在一些特殊的场景下才能适用 volatile。总的来说必须同时满足下面两个条件才能保证在并发环境的线程安 全 1对变量的写操作不依赖于当前值比如 i或者说是单纯的变量赋值boolean flag true。 2该变量没有包含在具有其他变量的不变式中也就是说不同的 volatile 变量之间不 能互相依赖。只有在状态真正独立于程序内其他内容时才能使用 volatile。
http://www.hkea.cn/news/14538148/

相关文章:

  • 浙江省城乡建设网站证件查询企业网站做备案
  • 广东东莞自己建站教程宁波网站建设制作公司排名
  • 西安网站建设加q479185700网站设计制作收费明细
  • 网站建设夬金手指排名壹陆建设网站费用计入什么费用
  • 网站建设更新维护工作图片展示网站php源码
  • 做参茸产品的网站wordpress主题手机制作教程
  • 邵阳网站设计南京佛搜做网站公司
  • 德阳手机网站建设电子商务公司的经营范围有哪些
  • 辽宁手机版建站系统信息桂林森禾医药有限公司
  • 番禺做网站多少钱雅布设计
  • 论坛网站建设公司做网站就找喇叭人
  • 如何利用站群做网站进一步加强区门户网站建设管理办法
  • 网站建设话语杭州网站建设科技有限公司
  • 湛江个人网站建设网站建设安全服务协议
  • 山西省住房建设厅网站下载wordpress 百度广告插件
  • seo搜索引擎优化工作内容优化什么
  • 新沂网站设计上海网站开发平台
  • 免费网站建设网站优化软件apache网站拒绝访问
  • win7怎么做网站映射自己建网站要花多少钱
  • 如何选择网站的关键词wordpress 获取头像地址
  • 青岛网站制作案例百事通做网站
  • 滨海做网站价格网站前端与后台必须同时做吗
  • 网站建设规划设计公司django做的网站源码
  • 深圳建网站终身免费网站建设
  • 山东省建设工程质量监督总站网站建站大师
  • 南昌做建网站的福步外贸官网
  • 国外经典设计网站做贸易上什么网站
  • 手机付费咨询网站建设怎样做网站权重
  • 网站仿站工具wordpress+Apache升级
  • 做网站 信科网站建设便宜WordPress页面增加底部栏