До сих пор я хотел сохранить эти разделенные запятыми списки в своем SQL-db - хорошо осведомленный обо всех предупреждениях!
Я все думал о том, что у них есть преимущества по сравнению с поисковыми таблицами (которые обеспечивают способ нормализации база данных). После нескольких дней отказа я увидел свет:
Короче говоря, есть причина, по которой нет родной SPLIT () в MySQL.
Вы выполняете синхронизацию с переменной queue
, но вызываете wait()
и notify()
для объекта this
. Вам нужно либо удерживать блокировку кнопками synchornized(this)
, либо позвонить в queue.wait()
и queue.notify()
, чтобы убедиться, что вы уведомляете тот же монитор, для которого у вас есть блокировка. Вы можете взглянуть на Документы охраняемых блоков .
Обратите внимание, что вам не нужно создавать очередь самостоятельно. JDK предоставляет несколько реализаций java.util.concurrent.BlockingQueue
:
Очередь, которая дополнительно поддерживает операции, которые ожидают, что очередь станет непустой при извлечении элемента, и ожидают места для становятся доступными в очереди при хранении элемента.
BLOCKQUOTE>