完整程序，增加了其他指令的lock和unlock