-
【并发】【编程题】ReadWriteLock
题目ReentrantReadWriteLock会发生写饥饿的情况吗?如果发生,有没有比较好的解决办法? 解答1、ReentrantReadWriteLock会发生写饥饿的情况吗? 因为可以允许多个线程同时读,如果高并发情况下,读操作获取到读锁后,就可能出现一直不断的有读操作进入临界区,一直不释放读锁,造成写操作阻塞,所以可以通过高并发读操作来确定ReentrantReadWriteLock是否会 …
-
【并发】【编程题】Semaphore
信号量相关的编程题目,限流。 题目实现一个流控程序,控制客户端每秒调用某个远程服务不超过N次,客户端是会多线程并发调用。 解答1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768package se …
-
【并发】【编程题】Lock 和 Condition
学习多线程有一段时间了,一直没有实践,从网上找了一道经典题来练练手。 题目启动3个线程打印递增的数字,线程1先打印1,2,3,4,5,然后是线程2打印6,7,8,9,10,然后是线程3打印11,12,13,14 15。接着再由线程1打印16,17,18,19,20 ….以此类推,直到打印到75。程序的输出结果应该为: 线程1:1 线程1:2 线程1:3 线程1:4 线程1:5 线程2:6 线程2: …