在class `SkipList` 中的 `insert_element` 和 `delete_element`中,开头的一行使用 `mtx.lock();` 尝试给数据结构上了锁,不过作为查找的 `search_element` 却没有上锁。这么做有个问题,虽然它避免了写-写数据竞争,但是没有避免读-写数据竞争,我并不确定在多线程环境下这样依然是安全的,例如某一线程在free的的时候另一线程仍然在读以及使用指针。