这种写法有何用意?static int ready = 0; if (0 != ready) return -1;先赋为0,而后又判断如果不为0,这有什么必要呢?[解决办法]可能在同一个程序块当中有另一个线程使用该变量。[解决办法]int func() {static int ready = 0; if (0 != ready) return -1;ready = 1;}这样,两次运行func的结果是不同的。