Lock - это инструмент для управления несколькими потоками для доступа к общим ресурсам. Как правило, блокировка обеспечивает эксклюзивные посещения общих ресурсов. Есть только один поток, чтобы получить замок за раз. Тем не менее, некоторые замки могут разрешить интервью с общими ресурсами, такими как ReadWritelock (поддержание пары связанных замков, один для работы только для чтения, а другой для написания операций).
1. Lock обеспечивает безусловные, круглые, проведенные сроки, прерываемые операции с приобретением блокировки, все методы блокировки и разблокировки являются явными.
Общедоступный интерфейс {void lock (); Mode Boolean Trylock (Long Timeout, TimeUnit Unit) Throws TreamptedException;
2. Reentrantlock реализует интерфейс блокировки.
3. Нормативная форма интерфейса блокировки требует отпуска lock.unlock () для выпуска lock.unlock () в блоке, наконец,. Если код блокировки -гарда является ненормальным внешним блоком Try, он никогда не будет выпущен.
Следующее использование блокировки моделирования: при условии, что существует два потока (поток A, B -B) для вызова метода Print (String name), поток A отвечает за печать строки Zhangsan, и поток B отвечает за печать LISI ' нить.
1. При добавлении метода Lint (String name) поток A не выполнялся, и поток B начал выполнять, тогда у печатного имени будет следующие проблемы.
2. Когда метод имени печати добавляется в блокировку, метод печати (название строки) выполняется после завершения A после завершения выполнения для достижения взаимного исключения или эффекта синхронизации.
Пакет com.ljq.test.thread; String [] args) {new LockTest (). ) {Try {thread.sleep (10);} catch (прерывание Exception e) {e.printStackTrace ();} haangsan ");}}}). Start (); // B -поток New Runnable () { @Override public run () {while (true) {try {thread.sleep (10);} catch (прерывание Exception e) {e.prin. . ;