zoukankan      html  css  js  c++  java
  • Java线程新特征之同步

    1、普通锁。

      import java.util.concurrent.locks.Lock; 
      import java.util.concurrent.locks.ReentrantLock; 

      Lock lock = new ReentrantLock(); 

      myLock.lock(); 

      myLock.unlock(); 

    2、读写锁。

       Lock接口以及对象,使用它,很优雅的控制了竞争资源的安全访问,但是这种锁不区分读写,称这种锁为普通锁。为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,在一定程度上提高了程序的执行效率。

      import java.util.concurrent.locks.ReadWriteLock; 
      import java.util.concurrent.locks.ReentrantReadWriteLock; 

      ReadWriteLock lock = new ReentrantReadWriteLock(false);

      myLock.readLock().lock(); 

      myLock.readLock().unlock(); 

      myLock.writeLock().lock(); 

      myLock.writeLock().unlock(); 

    信号量

    1、信号量是解决消费者、生产者的最经典解决方案。

      import java.util.concurrent.Semaphore; 

      pool.getSp().acquire(x); 

      pool.getSp().release(x); 

    阻塞队列

      阻塞队列的接口java.util.concurrent.BlockingQueue

      阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。

      import java.util.concurrent.BlockingDeque; 
      import java.util.concurrent.LinkedBlockingDeque; 

    条件变量

      import java.util.concurrent.locks.Condition; 

      private Condition _save = lock.newCondition();

       _draw.await();

      _save.signalAll();

    原子量

      所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。

      import java.util.concurrent.atomic.AtomicLong; 

      private static AtomicLong aLong = new AtomicLong(10000);

      aLong.addAndGet(x)

    障碍器

      Java5中,添加了障碍器类,为了适应一种新的设计需求,比如一个大型的任务,常常需要分配好多子任务去执行,只有当所有子任务都执行完成时候,才能执行主任务,这时候,就可以选择障碍器了。

      import java.util.concurrent.CyclicBarrier; 

      CyclicBarrier cb = new CyclicBarrier(7, new MainTask()); 

      cb.await(); 

  • 相关阅读:
    hmailserver
    用数据库管理SERV-U的用户时,如何修改密码及原理
    一个jquery的图片下拉列表 ddSlick
    图片下拉列表
    mvc 用户控件 ascx 获取 View 页面的值
    asp.net mvc 通过修改路由规则来实现页面的URL多参数传递
    tips
    让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法
    IE8下ckeditor无法正常使用,提示"例外被抛出且未被接住"的解决办法
    iis6 下发布MVC2项目的方法
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2065660.html
Copyright © 2011-2022 走看看