0

我正在尝试在 java 中的播放列表中实现。唯一的问题是 populatePlaylist() 有点慢,需要锁定。我已经编写了这段代码,但它似乎不起作用。

        private static final Lock lock = new ReentrantLock();

        public Playlist(Context context, int length, boolean isLocked) {
                lock.lock();
                this.mContext = context;
                this.populatePlaylist(length);

                // If the playlist is locked we do not unlock it.
                // wait for someone to do it manually.
                if (!isLocked)
                        lock.unlock();
        }

        public void unlock() {
                lock.unlock();
        }

当第二次调用构造函数时,它只会执行所有代码,即使从未调用过 unlock()。

编辑:这是我尝试做的。播放列表类只是播放列表的表示(惊喜:))。生成播放列表可能有点慢,所以我在程序的不同部分之间共享播放列表类,以避免多次加载播放列表。是的,播放列表在每个线程中只创建一次。一种是 UI 模式,一次是后台线程,一次是其他地方。

播放列表是静态的。在“populateplaylist”中,代码​​看起来有点像这样:

if (playlist.isEmpty()) { create_playlist } else {nothing}
4

0 回答 0