wffweb/src/main/java/com/webfirmframework/wffweb/tag/repository/TagRepository.java
public Collection<AbstractHtml> findAllTags(final boolean parallel) {
        final Collection<Lock> locks = getReadLocks(rootTags);
        for (final Lock lock : locks) {
            lock.lock();
        }
        try {
            return buildAllTagsStream(parallel).collect(Collectors.toSet());
        } finally {
            for (final Lock lock : locks) {
                lock.unlock();
            }
        }
    }
public Collection<AbstractHtml> findAllTags(final boolean parallel) {
        final Collection<Lock> locks = getReadLocks(rootTags);
        for (final Lock lock : locks) {
            lock.lock();
        }
        try {
            return buildAllTagsStream(parallel).collect(Collectors.toSet());
        } finally {
            for (final Lock lock : locks) {
                lock.unlock();
            }
        }
    }
Finds all tags excluding {@code NoTag}. To get {@code NoTag} included
collection use static method
{@code TagRepository.findAllTags(boolean parallel, AbstractHtml... fromTags)}.

This method may perform better than the static method.

@param parallel
true to internally use parallel stream. If true it
will split the finding task to different batches and
will execute the batches in different threads in
parallel consuming all CPUs. It will perform faster
in finding from extremely large number of tags but at
the same time it will less efficient in finding from
small number of tags.
@return the collection of all tags
@since 3.0.0
@author WFF