all passed, but need more test for the multithread read and write