美文网首页
(2)Semaphore构造方法permits参数作用

(2)Semaphore构造方法permits参数作用

作者: 码出高效 | 来源:发表于2018-03-29 22:18 被阅读13次

    使同一时间内最多只有1个线程可以执行accquire()和release()之间的代码,应为只有1个许可

    其实还可以传入>1的许可,代表同一时间内,最多允许x个线程可以执行acquire()和release()之间的代码.

    使用代码new Semaphore(2)来实例化该类同一时间内最多允许2个线程执行

    创建三个线程类:

    创建运行类:

    大家可以看到:同一个时间只允许两个线程运行:

    另外需要说明下:

    对Semaphore类的构造方法传递的参数如果permits值如果大于1,该类并不能保证线程安全,应为还是有可能会出现多个线程共同访问实例变量,导致出现脏数据的情况。

    相关文章

      网友评论

          本文标题:(2)Semaphore构造方法permits参数作用

          本文链接:https://www.haomeiwen.com/subject/nymvcftx.html