阅读背景:

如何控制某个方法允许并发访问线程的个数?--Semaphore_AugusSong的博客

来源:互联网 
. package com.yange;
2.
3. import java.util.concurrent.Semaphore;
4. /**
5. * 
6. *
7. */
8. 
9. public class SemaphoreTest {
10. /*
11. * permits the initial number of permits available. This value may be negative, 
12. in which case releases must occur before any acquires will be granted.
13. fair true if this semaphore will guarantee first-in first-out granting of 
14. permits under contention, else false
15. */
16. static Semaphore semaphore = new Semaphore(5,true);
17. public static void main(String[] args) {
18. for(int i=0;i<100;i++){
19. new Thread(new Runnable() {
20.
20. @Override
21. public void run() {
22. test();
23. }
24. }).start();
25. }
27.
26. }
29.
27. public static void test(){
28. try {
29. //申请一个请求
30. semaphore.acquire();
31. } catch (InterruptedException e1) {
32. e1.printStackTrace();
33. }
34. System.out.println(Thread.currentThread().getName()+"进来了");
35. try {
36. Thread.sleep(1000);
37. } catch (InterruptedException e) {
38. e.printStackTrace();
39. }
40. System.out.println(Thread.currentThread().getName()+"走了");
41. //释放一个请求
42. semaphore.release();
43. }
44. }
. package com.yange;
2.
3. import java.u



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: