synchronized,but not very good