知识大全 新特征-信号量

Posted 资源

篇首语:不飞则已,一飞冲天;不鸣则已,一鸣惊人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 新特征-信号量相关的知识,希望对你有一定的参考价值。

Java线程:新特征-信号量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    Java的信号量实际上是一个功能完毕的计数器 对控制一定资源的消费与回收有着很重要的意义 信号量常常用于多线程的代码中 并能监控有多少数目的线程等待获取资源 并且通过信号量可以得知可用资源的数目等等 这里总是在强调 数目 二字 但不能指出来有哪些在等待 哪些资源可用       因此 本人认为 这个信号量类如果能返回数目 还能知道哪些对象在等待 哪些资源可使用 就非常完美了 仅仅拿到这些概括性的数字 对精确控制意义不是很大 目前还没想到更好的用法       下面是一个简单例子   import ncurrent ExecutorService; import ncurrent Executors; import ncurrent Semaphore; /** * Java线程 新特征 信号量 * * @author leizhimin : : */ public class Test         public static void main(String[] args)                 MyPool myPool = new MyPool( );                 //创建线程池                 ExecutorService threadPool = Executors newFixedThreadPool( );                 MyThread t = new MyThread( 任务A myPool );                 MyThread t = new MyThread( 任务B myPool );                 MyThread t = new MyThread( 任务C myPool );                 //在线程池中执行任务                 threadPool execute(t );                 threadPool execute(t );                 threadPool execute(t );                 //关闭池                 threadPool shutdown();          /** * 一个池 */ class MyPool         private Semaphore sp;     //池相关的信号量         /**          * 池的大小 这个大小会传递给信号量          *          * @param size 池的大小          */         MyPool(int size)                 this sp = new Semaphore(size);                  public Semaphore getSp()                 return sp;                  public void setSp(Semaphore sp)                 this sp = sp;          class MyThread extends Thread         private String threadname;            //线程的名称         private MyPool pool;                        //自定义池         private int x;                                    //申请信号量的大小         MyThread(String threadname MyPool pool int x)                 this threadname = threadname;                 this pool = pool;                 this x = x;                  public void run()                 try                         //从此信号量获取给定数目的许可                         pool getSp() acquire(x);                         //todo 也许这里可以做更复杂的业务                         System out println(threadname + 成功获取了 + x + 个许可! );                  catch (InterruptedException e)                         e printStackTrace();                  finally                         //释放给定数目的许可 将其返回到信号量                         pool getSp() release(x);                         System out println(threadname + 释放了 + x + 个许可! );                             任务B成功获取了 个许可! 任务B释放了 个许可! 任务A成功获取了 个许可! 任务C成功获取了 个许可! 任务C释放了 个许可! 任务A释放了 个许可! Process finished with exit code       从结果可以看出 信号量仅仅是对池资源进行监控 但不保证线程的安全 因此 在使用时候 应该自己控制线程的安全访问池资源   cha138/Article/program/Java/hx/201311/26264

相关参考

新三价线指标的应用法则

新三价线指标的应用法则1、新三价线由黑色变为红色时,视为买入信号。2、新三价线由红色变为黑色时,视为卖出信号。注意:新三价线如果持续上涨,则会由原新三价线向上延伸,下跌亦然。因此,新三价线不会与K线在

黑背信天翁的简介、地理分布、外形特征、饮食、生长繁殖、求爱信号、保护现状

黑背信天翁(学名:Phoebastriaimmutabilis,英文名:LaysanAlbatross)是信天翁科北太平洋信天翁属的鸟类。黑背信天翁,中等体型,冬候鸟,分布于北纬30°~55°,太平洋

三阳开泰的买卖信号

三阳开泰的买卖信号三阳开泰的技术特征与“三个白武士”K线组合的特征极为相似,都是在低位时连拉三根阳线,预示着后市可能见底回升,两者之间最明显的区别在于:“三个白武士”K线的三根阳线皆为小阳,为短期见底

知识大全 新零售有什么特征,适合哪些行业

新零售有什么特征,适合哪些行业,新零售适合哪些行业适合的有很多,具体有以下几类地产新零售、跨境电商新零售、母婴新零售、生鲜新零售、化妆品新零售、农产品新零售、零食新零售、家居新零售、酒店新零售、教育新

揉搓线的特征

揉搓线的特征1、多出现在上涨的势头中2、由一正一反两个T字组成技术含义是:(1)在上涨中途出现,继续看涨(2)在顶部门出现,是见顶信号,见到这个信号,要卖出票票;还有一个区分的标志是:在中途出现的揉搓

知识大全 中国经济新常态有哪些内涵或特征,特点

中国经济新常态有哪些内涵或特征,特点中国经济新常态的四个主要特征中高速。经济增速换挡回落、从过去10%左右的高速增长转为7%~8%的中高速增长是新常态的最基本特征。优结构。产业结构方面,第三产业逐步成

知识大全 新特征-锁(下)

Java线程:新特征-锁(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 新特征-阻塞队列

Java线程:新特征-阻塞队列  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 新特征-线程池

Java线程:新特征-线程池  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

非线性系统的特征有哪些?

  (1)稳定性:非线性系统的稳定性不仅与系统的结构和参数有关,而且与运动的初始条件、输入信号有关系。  (2)时间响应:非线性系统的时间响应与输入信号的大小和初始条件有关。  (3)自激振荡:非线性