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

怎么看网站用的什么cms濮阳网站建设知名公司排名

怎么看网站用的什么cms,濮阳网站建设知名公司排名,甘肃住房城乡建设厅网站首页,网站建设网站目录 1. Lock机制:明锁控制 2. 栅栏机制(CyclicBarrier) 3. 闭锁机制(CountDownLatch) 4. 信号量机制(Semaphore) 5. 无锁机制 1. Lock机制:明锁控制 Lock接口提供了比synchronized更灵活的锁机制,属于明锁(需要手动获取和释…

目录

1. Lock机制:明锁控制

2. 栅栏机制(CyclicBarrier)

3. 闭锁机制(CountDownLatch)

4. 信号量机制(Semaphore)

5. 无锁机制


1. Lock机制:明锁控制

        Lock接口提供了比synchronized更灵活的锁机制,属于明锁(需要手动获取和释放锁)。与synchronized隐式锁不同,Lock需要显式地调用lock()和unlock()方法。

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;public class LockDemo {private Lock lock = new ReentrantLock();private int count = 0;public void increment() {lock.lock();  // 手动获取锁try {count++;} finally {lock.unlock();  // 必须在finally中手动释放锁}}
}

2. 栅栏机制(CyclicBarrier)

        栅栏机制允许一组线程相互等待,直到所有线程都到达某个屏障点,然后所有线程才会继续执行。CyclicBarrier可以重复使用,适用于分阶段的任务处理。

package com.demo5;import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;/*** * 研学,旅游公司包车,一个车做4个同学,坐满就发车; 总共有28个人,怎么控制和实现?**/public class Test {public static void main(String[] args) {// 设置屏障点CyclicBarrier cb = new CyclicBarrier(4, () -> {System.out.println("已经有4个同学了,就发车吧, 旅游车已经启动出发");});for (int i = 0; i < 28; i++) {Runnable r = () -> {System.out.println("学生来报道............");try {cb.await();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (BrokenBarrierException e) {// TODO Auto-generated catch blocke.printStackTrace();}};try {Thread.sleep(3000);} catch (InterruptedException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}new Thread(r).start();}}}

运行结果:

3. 闭锁机制(CountDownLatch)

        闭锁是一种一次性使用的同步辅助工具,允许一个或多个线程等待其他线程完成操作。

package com.demo8;import java.util.concurrent.CountDownLatch;public class Test {public static void main(String[] args) {//闭锁,任务只能执行一次CountDownLatch cdl   = new CountDownLatch(10);//10个人到了,一桌人开始吃饭,吃完就结束。for(int i=0;i<10;i++){Runnable  r = ()->{System.out.println(Thread.currentThread().getName()+",来吃饭.....");cdl.countDown();//-1,一直到0};try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}new Thread(r).start();}try {cdl.await(); // 等待计数器归零,屏障点解除} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("我们开始欢乐的用餐");}}

运行结果:

4. 信号量机制(Semaphore)

        信号量用于控制同时访问特定资源的线程数量,通过许可证机制实现资源池的访问控制。

package com.demo9;import java.util.Random;
import java.util.concurrent.Semaphore;public class Test {public static void main(String[] args) {Semaphore  s  = new Semaphore(3);   // 允许3个线程同时访问for(int i=0;i<6;i++){Runnable  r = ()->{try {s.acquire();  // 获取许可System.out.println(Thread.currentThread().getName()+", 抢优惠劵");Thread.sleep(new Random().nextInt(20)*1000);System.out.println(Thread.currentThread().getName()+", 离开现场");} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{s.release();  // 释放许可}};new Thread(r).start();}}}

运行结果:

5. 无锁机制

        无锁编程通过CAS(Compare And Swap)操作实现线程安全,避免了锁的开销。Java中的Atomic类就是无锁机制的典型实现。

package com.demo3;import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;public class Test {// 原子锁,就是无锁private  static  AtomicInteger  count  = new AtomicInteger(0);public static void inc() {try {Thread.sleep(1);// 毫秒count.getAndIncrement();//count加1// TimeUnit.MILLISECONDS.sleep(1);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {CountDownLatch cd = new CountDownLatch(100);for (int i = 0; i < 100; i++) {Runnable r = () -> {Test.inc();cd.countDown();};new Thread(r).start();}try {cd.await();System.out.println("总和为:" + Test.count);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

运行结果:

http://www.dtcms.com/a/584379.html

相关文章:

  • 济南网站优化公司电话衣柜全屋定制排名
  • 网站制作的步骤不包括哪些妇产医院网站源码
  • 阳江网站设计seo 重庆
  • 网站开发tornadovs2019怎么创建网站
  • 网络营销方式都有哪些网站seo优化服务商
  • 帮网站网站做推广被抓会判刑吗重新做网站
  • 沈阳城市建设管理学校网站wordpress登录模板
  • 宿州市住房和城乡建设局网站怎么创建网页文件
  • 开发app的网站有哪些北京seo网络推广
  • 音乐网站程序源码内蒙古建设厅网站官网
  • 制作作业平台网站的设计做网站要要多少钱
  • 电影网站开发背景建设网站需要多久
  • 织梦网站搜索页点击返回首页没有反应用muse做网站
  • 阳光市往房和城乡规划建设局网站韩国网站免费模板
  • 公司自己做网站流程和备案做网站注册商标
  • 网站备案要营业执照吗wordpress 禁用评论
  • 自己开网站能赚钱吗长春网站建设网
  • wordpress vip system东莞网络优化专注乐云seo
  • 网站建设html代码优化如何删除网站死链
  • 上海网站建设兴策新媒体营销和网络营销的区别
  • 外部链接链轮的建设对于网站提h5网站制作平台有哪些
  • 中山低价网站建设专业定制网站开发
  • 怎么推广一个网站宝安网页
  • 北京论坛建站模板做淘宝代销哪个网站好
  • 旅游网站后台html模板建的网站打开很慢
  • 成都网站备案太慢帮别人做设计的网站
  • 广西建设工程质检安全网站如何替换网站
  • 做类图的网站免费的小程序
  • 如何做全球网站排名微网站怎么做的好名字
  • 山西省财政厅门户网站三基建设网络设计培训班