线程安全的
transfer(T t) 直接把内容传递个消费者,如果没有消费者将会阻塞
public static void main(String[] args) throws InterruptedException {
TransferQueue<String> tq = new LinkedTransferQueue<>();
tq.transfer("test");
new Thread(()->{
try {
Thread.sleep(500);
System.out.println(tq.poll());
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
上面代码会被阻塞。
tryTransfer(T t, long long, TimeUnit unit) 尝试 一定时间,如果没有消费者,返回 false。