for (int i = 0; i < 2; i++) {
synchronized (queuelock){
// queuelock.lock();
try {
Integer duration = new Random().nextInt(1) + 1;
System.out.println(Thread.currentThread().getName() + " 正在打印,需要 " +
duration + " 秒");
try {
Thread.sleep(duration * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} finally {
// queuelock.unlock();
}
}打印:
Thread-0开始打印
Thread-0 正在打印,需要 1 秒
Thread-1开始打印
Thread-2开始打印
Thread-3开始打印
Thread-4开始打印
Thread-5开始打印
Thread-6开始打印
Thread-7开始打印
Thread-8开始打印
Thread-9开始打印
Thread-0 正在打印,需要 1 秒
Thread-0打印完毕
Thread-9 正在打印,需要 1 秒
Thread-9 正在打印,需要 1 秒
Thread-9打印完毕
Thread-8 正在打印,需要 1 秒
Thread-8 正在打印,需要 1 秒
Thread-8打印完毕
synchronized难道不是阻塞队列,而是阻塞栈吗老师?