
在C11以前C的多线程编程均需依赖系统或第三方接口实现一定程度上影响了代码的移植性。C11中引入了boost库中的多线程部分内容形成C标准形成标准后的boost多线程编程部分接口基本没有变化这样方便了以前使用boost接口开发的使用者切换使用C标准接口很容易把boost接口升级为C标准接口。我们通过如下几部分介绍C11多线程方面的接口及使用方法。1. std::threadstd::thread为C11的线程类使用方法和boost接口一样非常方便同时C11的std::thread解决了boost::thread中构成参数限制的问题我想这都是得益于C11的可变参数的设计风格。我们通过如下代码熟悉下std::thread使用风格:123456789101112131415161718192021222324//c11.cpp#include iostream#include threadvoidthreadfun1(){std::cout threadfun1 - 1\r\n std::endl;std::this_thread::sleep_for(std::chrono::seconds(1));std::cout threadfun1 - 2 std::endl;}voidthreadfun2(intiParam, std::string sParam){std::cout threadfun2 - 1 std::endl;std::this_thread::sleep_for(std::chrono::seconds(5));std::cout threadfun2 - 2 std::endl;}intmain(){std::threadt1(threadfun1);std::threadt2(threadfun2, 10,abc);t1.join();std::cout join std::endl;t2.detach();std::cout detach std::endl;}注意编译时要使用g c11.cpp -lpthread运行结果threadfun1 - 1threadfun2 - 1threadfun1 - 2joindetach2. std::atomicstd::atomic为C11封装的原子数据类型。什么是原子数据类型从功能上看简单地说原子数据类型不会发生数据竞争能直接用在多线程中而不必我们用户对其进行添加互斥资源锁的类型。从实现上来看我们可以理解为这些原子类型内部自己加了锁。我们下面通过一个测试例子说明原子类型std::atomic的特点。我们使用10个线程把std::atomic类型的变量iCount从10减到1。123456789101112131415161718192021222324252627282930//c11.cpp#include thread#include atomic#include stdio.h#include iostream#include liststd::atomicbool bIsReady(false);std::atomicint iCount(10);voidthreadfun1(){if(!bIsReady) {std::this_thread::yield();}while(iCount 0){printf(iCount:%d\r\n, iCount--);}}intmain(){std::liststd::thread lstThread;for(inti 0; i 10; i){lstThread.push_back(std::thread(threadfun1));}for(auto th : lstThread){th.join();}}运行结果iCount:10iCount:9iCount:8iCount:7iCount:6iCount:5iCount:4iCount:3iCount:2iCount:1从上面的结果可以看到iCount的最小结果是1没有出现小于等于0的情况大家可以把iCount改成100甚至1000看看可能会更直观一点。3. std::condition_variableC11中的std::condition_variable就像Linux下使用pthread_cond_wait和pthread_cond_signal一样可以让线程休眠直到被唤醒然后再重新执行。线程等待在多线程编程中使用非常频繁经常需要等待一些异步执行的条件的返回结果。代码如下1234567891011121314151617181920212223242526272829#include iostream // std::cout#include thread // std::thread#include mutex // std::mutex, std::unique_lock#include condition_variable // std::condition_variablestd::mutex mtx;std::condition_variable cv;boolready false;voidprint_id(intid) {std::unique_lockstd::mutex lck(mtx);while(!ready) cv.wait(lck);//线程将进入休眠// ...std::cout thread id \n;}voidgo() {std::unique_lockstd::mutex lck(mtx);ready true;cv.notify_all();}intmain(){std::threadthreads[10];// spawn 10 threads:for(inti 0; i10; i)threads[i] std::thread(print_id, i);std::cout 10 threads ready to race...\n;go();// go!for(auto th : threads) th.join();return0;}运行结果10 threads ready to race...thread 0thread 1thread 2thread 3thread 4thread 5thread 6thread 7thread 8thread 9上面的代码在调用go函数之前10个线程都处于休眠状态当cv.notify_all()运行后线程休眠结束继续往下运行最终输出如上结果。iyt.phxwcu.cn/57311.shtmiyt.phxwcu.cn/59557.shtmiyt.phxwcu.cn/39119.shtmiyt.phxwcu.cn/97599.shtmiyt.phxwcu.cn/35755.shtmiyt.phxwcu.cn/15993.shtmiyt.phxwcu.cn/39599.shtmiyt.phxwcu.cn/79917.shtmiyt.phxwcu.cn/99793.shtmiyt.phxwcu.cn/55715.shtmiyy.phxwcu.cn/11533.shtmiyy.phxwcu.cn/35315.shtmiyy.phxwcu.cn/51115.shtmiyy.phxwcu.cn/33353.shtmiyy.phxwcu.cn/55937.shtmiyy.phxwcu.cn/57919.shtmiyy.phxwcu.cn/31151.shtmiyy.phxwcu.cn/35353.shtmiyy.phxwcu.cn/99793.shtmiyy.phxwcu.cn/13331.shtmiyu.phxwcu.cn/71315.shtmiyu.phxwcu.cn/35999.shtmiyu.phxwcu.cn/99339.shtmiyu.phxwcu.cn/19337.shtmiyu.phxwcu.cn/75537.shtmiyu.phxwcu.cn/88064.shtmiyu.phxwcu.cn/31197.shtmiyu.phxwcu.cn/22680.shtmiyu.phxwcu.cn/99313.shtmiyu.phxwcu.cn/75115.shtmiyi.phxwcu.cn/51995.shtmiyi.phxwcu.cn/79379.shtmiyi.phxwcu.cn/59571.shtmiyi.phxwcu.cn/93317.shtmiyi.phxwcu.cn/64682.shtmiyi.phxwcu.cn/19113.shtmiyi.phxwcu.cn/97391.shtmiyi.phxwcu.cn/95135.shtmiyi.phxwcu.cn/51197.shtmiyi.phxwcu.cn/19797.shtmiyo.phxwcu.cn/39599.shtmiyo.phxwcu.cn/60884.shtmiyo.phxwcu.cn/57553.shtmiyo.phxwcu.cn/99599.shtmiyo.phxwcu.cn/95953.shtmiyo.phxwcu.cn/02646.shtmiyo.phxwcu.cn/51977.shtmiyo.phxwcu.cn/75771.shtmiyo.phxwcu.cn/93513.shtmiyo.phxwcu.cn/79371.shtmiyp.phxwcu.cn/17131.shtmiyp.phxwcu.cn/15935.shtmiyp.phxwcu.cn/86804.shtmiyp.phxwcu.cn/55335.shtmiyp.phxwcu.cn/68620.shtmiyp.phxwcu.cn/93393.shtmiyp.phxwcu.cn/28400.shtmiyp.phxwcu.cn/95911.shtmiyp.phxwcu.cn/84208.shtmiyp.phxwcu.cn/13571.shtmiya.phxwcu.cn/51739.shtmiya.phxwcu.cn/20424.shtmiya.phxwcu.cn/80422.shtmiya.phxwcu.cn/73531.shtmiya.phxwcu.cn/77157.shtmiya.phxwcu.cn/11975.shtmiya.phxwcu.cn/66800.shtmiya.phxwcu.cn/97797.shtmiya.phxwcu.cn/64024.shtmiya.phxwcu.cn/97159.shtmiys.phxwcu.cn/20044.shtmiys.phxwcu.cn/62840.shtmiys.phxwcu.cn/93375.shtmiys.phxwcu.cn/60662.shtmiys.phxwcu.cn/79737.shtmiys.phxwcu.cn/06600.shtmiys.phxwcu.cn/39733.shtmiys.phxwcu.cn/28378.shtmiys.phxwcu.cn/88200.shtmiys.phxwcu.cn/26608.shtmiyd.phxwcu.cn/17153.shtmiyd.phxwcu.cn/37591.shtmiyd.phxwcu.cn/51991.shtmiyd.phxwcu.cn/93111.shtmiyd.phxwcu.cn/17351.shtmiyd.phxwcu.cn/48486.shtmiyd.phxwcu.cn/00860.shtmiyd.phxwcu.cn/64602.shtmiyd.phxwcu.cn/73317.shtmiyd.phxwcu.cn/00288.shtmiyf.phxwcu.cn/17739.shtmiyf.phxwcu.cn/80884.shtmiyf.phxwcu.cn/51377.shtmiyf.phxwcu.cn/42860.shtmiyf.phxwcu.cn/75519.shtmiyf.phxwcu.cn/28620.shtmiyf.phxwcu.cn/00088.shtmiyf.phxwcu.cn/33098.shtmiyf.phxwcu.cn/06620.shtmiyf.phxwcu.cn/00640.shtmiyg.phxwcu.cn/91539.shtmiyg.phxwcu.cn/00220.shtmiyg.phxwcu.cn/75577.shtmiyg.phxwcu.cn/68228.shtmiyg.phxwcu.cn/88862.shtmiyg.phxwcu.cn/73535.shtmiyg.phxwcu.cn/35139.shtmiyg.phxwcu.cn/79379.shtmiyg.phxwcu.cn/79711.shtmiyg.phxwcu.cn/20866.shtmiyh.phxwcu.cn/51933.shtmiyh.phxwcu.cn/53731.shtmiyh.phxwcu.cn/28282.shtmiyh.phxwcu.cn/20082.shtmiyh.phxwcu.cn/75553.shtmiyh.phxwcu.cn/79551.shtmiyh.phxwcu.cn/26408.shtmiyh.phxwcu.cn/59937.shtmiyh.phxwcu.cn/97115.shtmiyh.phxwcu.cn/59791.shtmiyj.phxwcu.cn/46248.shtmiyj.phxwcu.cn/26062.shtmiyj.phxwcu.cn/55195.shtmiyj.phxwcu.cn/71571.shtmiyj.phxwcu.cn/55513.shtmiyj.phxwcu.cn/35999.shtmiyj.phxwcu.cn/44048.shtmiyj.phxwcu.cn/59139.shtmiyj.phxwcu.cn/59937.shtmiyj.phxwcu.cn/46462.shtmiyk.phxwcu.cn/68000.shtmiyk.phxwcu.cn/40642.shtmiyk.phxwcu.cn/79935.shtmiyk.phxwcu.cn/42086.shtmiyk.phxwcu.cn/40426.shtmiyk.phxwcu.cn/40440.shtmiyk.phxwcu.cn/42220.shtmiyk.phxwcu.cn/64020.shtmiyk.phxwcu.cn/88684.shtmiyk.phxwcu.cn/99113.shtmiyl.phxwcu.cn/46684.shtmiyl.phxwcu.cn/22648.shtmiyl.phxwcu.cn/71993.shtmiyl.phxwcu.cn/44848.shtmiyl.phxwcu.cn/26268.shtmiyl.phxwcu.cn/57719.shtmiyl.phxwcu.cn/31175.shtmiyl.phxwcu.cn/44440.shtmiyl.phxwcu.cn/57319.shtmiyl.phxwcu.cn/71999.shtmiyz.phxwcu.cn/64468.shtmiyz.phxwcu.cn/66880.shtmiyz.phxwcu.cn/99511.shtmiyz.phxwcu.cn/31317.shtmiyz.phxwcu.cn/31179.shtmiyz.phxwcu.cn/71959.shtmiyz.phxwcu.cn/80860.shtmiyz.phxwcu.cn/31933.shtmiyz.phxwcu.cn/62464.shtmiyz.phxwcu.cn/95533.shtmiyx.phxwcu.cn/77139.shtmiyx.phxwcu.cn/48244.shtmiyx.phxwcu.cn/93537.shtmiyx.phxwcu.cn/80466.shtmiyx.phxwcu.cn/57995.shtmiyx.phxwcu.cn/77379.shtmiyx.phxwcu.cn/24840.shtmiyx.phxwcu.cn/51759.shtmiyx.phxwcu.cn/48880.shtmiyx.phxwcu.cn/39793.shtmiyc.phxwcu.cn/37757.shtmiyc.phxwcu.cn/55373.shtmiyc.phxwcu.cn/39557.shtmiyc.phxwcu.cn/71131.shtmiyc.phxwcu.cn/51971.shtmiyc.phxwcu.cn/86022.shtmiyc.phxwcu.cn/06280.shtmiyc.phxwcu.cn/57573.shtmiyc.phxwcu.cn/71159.shtmiyc.phxwcu.cn/42066.shtmiyv.phxwcu.cn/42002.shtmiyv.phxwcu.cn/97993.shtmiyv.phxwcu.cn/22662.shtmiyv.phxwcu.cn/02424.shtmiyv.phxwcu.cn/08442.shtmiyv.phxwcu.cn/24800.shtmiyv.phxwcu.cn/19935.shtmiyv.phxwcu.cn/04604.shtmiyv.phxwcu.cn/57591.shtmiyv.phxwcu.cn/82664.shtmiyb.phxwcu.cn/66026.shtmiyb.phxwcu.cn/60408.shtmiyb.phxwcu.cn/68286.shtmiyb.phxwcu.cn/37193.shtmiyb.phxwcu.cn/48828.shtmiyb.phxwcu.cn/60088.shtmiyb.phxwcu.cn/44806.shtmiyb.phxwcu.cn/31175.shtmiyb.phxwcu.cn/35117.shtmiyb.phxwcu.cn/86688.shtmiyn.phxwcu.cn/11119.shtmiyn.phxwcu.cn/77931.shtmiyn.phxwcu.cn/02822.shtmiyn.phxwcu.cn/66624.shtmiyn.phxwcu.cn/24688.shtmiyn.phxwcu.cn/28068.shtmiyn.phxwcu.cn/62280.shtmiyn.phxwcu.cn/06264.shtmiyn.phxwcu.cn/00602.shtmiyn.phxwcu.cn/48602.shtmiym.phxwcu.cn/80624.shtmiym.phxwcu.cn/02088.shtmiym.phxwcu.cn/26688.shtmiym.phxwcu.cn/68088.shtmiym.phxwcu.cn/06464.shtmiym.phxwcu.cn/86488.shtmiym.phxwcu.cn/48844.shtmiym.phxwcu.cn/02682.shtmiym.phxwcu.cn/79773.shtmiym.phxwcu.cn/79117.shtmiuq.phxwcu.cn/28422.shtmiuq.phxwcu.cn/55117.shtmiuq.phxwcu.cn/75755.shtmiuq.phxwcu.cn/31511.shtmiuq.phxwcu.cn/68804.shtmiuq.phxwcu.cn/93597.shtmiuq.phxwcu.cn/11313.shtmiuq.phxwcu.cn/51917.shtmiuq.phxwcu.cn/84004.shtmiuq.phxwcu.cn/62666.shtmiuw.phxwcu.cn/31155.shtmiuw.phxwcu.cn/53797.shtmiuw.phxwcu.cn/53113.shtmiuw.phxwcu.cn/71593.shtmiuw.phxwcu.cn/86848.shtmiuw.phxwcu.cn/62646.shtmiuw.phxwcu.cn/02404.shtmiuw.phxwcu.cn/33517.shtmiuw.phxwcu.cn/28860.shtmiuw.phxwcu.cn/00246.shtmiue.phxwcu.cn/55353.shtmiue.phxwcu.cn/19777.shtmiue.phxwcu.cn/20206.shtmiue.phxwcu.cn/53991.shtmiue.phxwcu.cn/40008.shtmiue.phxwcu.cn/95553.shtmiue.phxwcu.cn/13197.shtmiue.phxwcu.cn/51151.shtmiue.phxwcu.cn/57591.shtmiue.phxwcu.cn/99919.shtmiur.phxwcu.cn/11373.shtmiur.phxwcu.cn/53193.shtmiur.phxwcu.cn/55333.shtmiur.phxwcu.cn/97713.shtmiur.phxwcu.cn/91311.shtmiur.phxwcu.cn/15517.shtmiur.phxwcu.cn/35339.shtmiur.phxwcu.cn/13375.shtmiur.phxwcu.cn/97731.shtmiur.phxwcu.cn/75911.shtmiut.phxwcu.cn/57599.shtmiut.phxwcu.cn/53113.shtmiut.phxwcu.cn/37515.shtmiut.phxwcu.cn/75913.shtmiut.phxwcu.cn/73797.shtmiut.phxwcu.cn/11977.shtmiut.phxwcu.cn/77977.shtmiut.phxwcu.cn/37171.shtmiut.phxwcu.cn/19951.shtmiut.phxwcu.cn/73539.shtmiuy.phxwcu.cn/97399.shtmiuy.phxwcu.cn/57719.shtmiuy.phxwcu.cn/51595.shtmiuy.phxwcu.cn/93951.shtmiuy.phxwcu.cn/57111.shtmiuy.phxwcu.cn/55517.shtmiuy.phxwcu.cn/91799.shtmiuy.phxwcu.cn/75975.shtmiuy.phxwcu.cn/95131.shtmiuy.phxwcu.cn/53577.shtmiuu.phxwcu.cn/77755.shtmiuu.phxwcu.cn/00022.shtmiuu.phxwcu.cn/48042.shtmiuu.phxwcu.cn/75559.shtmiuu.phxwcu.cn/79973.shtmiuu.phxwcu.cn/22286.shtmiuu.phxwcu.cn/06642.shtmiuu.phxwcu.cn/68606.shtmiuu.phxwcu.cn/46208.shtmiuu.phxwcu.cn/39755.shtmiui.phxwcu.cn/00626.shtmiui.phxwcu.cn/99535.shtmiui.phxwcu.cn/68824.shtmiui.phxwcu.cn/13175.shtmiui.phxwcu.cn/57137.shtmiui.phxwcu.cn/68884.shtmiui.phxwcu.cn/48288.shtmiui.phxwcu.cn/46480.shtmiui.phxwcu.cn/60262.shtmiui.phxwcu.cn/15119.shtmiuo.phxwcu.cn/51515.shtmiuo.phxwcu.cn/77357.shtmiuo.phxwcu.cn/99731.shtmiuo.phxwcu.cn/37597.shtmiuo.phxwcu.cn/06468.shtmiuo.phxwcu.cn/53599.shtmiuo.phxwcu.cn/44060.shtmiuo.phxwcu.cn/08042.shtmiuo.phxwcu.cn/37557.shtmiuo.phxwcu.cn/06800.shtmiup.phxwcu.cn/11571.shtmiup.phxwcu.cn/86880.shtmiup.phxwcu.cn/73111.shtmiup.phxwcu.cn/44804.shtmiup.phxwcu.cn/39173.shtmiup.phxwcu.cn/26080.shtmiup.phxwcu.cn/04488.shtmiup.phxwcu.cn/88622.shtmiup.phxwcu.cn/22464.shtmiup.phxwcu.cn/57331.shtmiua.phxwcu.cn/13997.shtmiua.phxwcu.cn/91551.shtmiua.phxwcu.cn/75771.shtmiua.phxwcu.cn/88848.shtmiua.phxwcu.cn/88660.shtmiua.phxwcu.cn/46604.shtmiua.phxwcu.cn/75971.shtmiua.phxwcu.cn/60488.shtmiua.phxwcu.cn/08022.shtmiua.phxwcu.cn/86444.shtmius.phxwcu.cn/57171.shtmius.phxwcu.cn/84864.shtmius.phxwcu.cn/66240.shtmius.phxwcu.cn/22060.shtmius.phxwcu.cn/42020.shtmius.phxwcu.cn/00446.shtmius.phxwcu.cn/42666.shtmius.phxwcu.cn/97771.shtmius.phxwcu.cn/40842.shtmius.phxwcu.cn/22484.shtmiud.phxwcu.cn/20224.shtmiud.phxwcu.cn/55391.shtmiud.phxwcu.cn/20404.shtmiud.phxwcu.cn/04022.shtmiud.phxwcu.cn/24084.shtmiud.phxwcu.cn/55571.shtmiud.phxwcu.cn/24884.shtmiud.phxwcu.cn/71371.shtmiud.phxwcu.cn/06260.shtmiud.phxwcu.cn/40080.shtmiuf.phxwcu.cn/66602.shtmiuf.phxwcu.cn/93719.shtmiuf.phxwcu.cn/46286.shtmiuf.phxwcu.cn/59951.shtmiuf.phxwcu.cn/79115.shtmiuf.phxwcu.cn/86604.shtmiuf.phxwcu.cn/02260.shtmiuf.phxwcu.cn/28808.shtmiuf.phxwcu.cn/17939.shtmiuf.phxwcu.cn/20062.shtmiug.phxwcu.cn/77971.shtmiug.phxwcu.cn/28426.shtmiug.phxwcu.cn/06224.shtmiug.phxwcu.cn/51197.shtmiug.phxwcu.cn/80808.shtmiug.phxwcu.cn/80804.shtmiug.phxwcu.cn/80842.shtmiug.phxwcu.cn/20040.shtmiug.phxwcu.cn/33351.shtmiug.phxwcu.cn/48600.shtmiuh.phxwcu.cn/13735.shtmiuh.phxwcu.cn/15577.shtmiuh.phxwcu.cn/04466.shtmiuh.phxwcu.cn/02002.shtmiuh.phxwcu.cn/02882.shtmiuh.phxwcu.cn/24426.shtmiuh.phxwcu.cn/15999.shtmiuh.phxwcu.cn/99759.shtmiuh.phxwcu.cn/15397.shtmiuh.phxwcu.cn/71915.shtmiuj.phxwcu.cn/28228.shtmiuj.phxwcu.cn/75911.shtmiuj.phxwcu.cn/71775.shtmiuj.phxwcu.cn/55557.shtmiuj.phxwcu.cn/91133.shtmiuj.phxwcu.cn/93517.shtmiuj.phxwcu.cn/73319.shtmiuj.phxwcu.cn/51395.shtmiuj.phxwcu.cn/55179.shtmiuj.phxwcu.cn/73799.shtmiuk.phxwcu.cn/77573.shtmiuk.phxwcu.cn/31579.shtmiuk.phxwcu.cn/35713.shtmiuk.phxwcu.cn/53397.shtmiuk.phxwcu.cn/33771.shtmiuk.phxwcu.cn/37711.shtmiuk.phxwcu.cn/91577.shtmiuk.phxwcu.cn/55195.shtmiuk.phxwcu.cn/75973.shtmiuk.phxwcu.cn/93359.shtmiul.phxwcu.cn/15113.shtmiul.phxwcu.cn/73339.shtmiul.phxwcu.cn/35313.shtmiul.phxwcu.cn/73757.shtmiul.phxwcu.cn/59979.shtmiul.phxwcu.cn/17917.shtmiul.phxwcu.cn/75153.shtmiul.phxwcu.cn/19733.shtmiul.phxwcu.cn/95371.shtmiul.phxwcu.cn/75759.shtmiuz.phxwcu.cn/33391.shtmiuz.phxwcu.cn/73315.shtmiuz.phxwcu.cn/15573.shtmiuz.phxwcu.cn/35997.shtmiuz.phxwcu.cn/75177.shtmiuz.phxwcu.cn/71313.shtmiuz.phxwcu.cn/99993.shtmiuz.phxwcu.cn/48424.shtmiuz.phxwcu.cn/02424.shtmiuz.phxwcu.cn/60022.shtmiux.phxwcu.cn/15359.shtmiux.phxwcu.cn/73377.shtmiux.phxwcu.cn/08262.shtmiux.phxwcu.cn/77971.shtmiux.phxwcu.cn/75357.shtmiux.phxwcu.cn/77599.shtmiux.phxwcu.cn/86464.shtmiux.phxwcu.cn/28804.shtmiux.phxwcu.cn/62060.shtmiux.phxwcu.cn/42202.shtmiuc.phxwcu.cn/51353.shtmiuc.phxwcu.cn/44044.shtmiuc.phxwcu.cn/15771.shtmiuc.phxwcu.cn/55513.shtmiuc.phxwcu.cn/42268.shtmiuc.phxwcu.cn/19399.shtmiuc.phxwcu.cn/77531.shtmiuc.phxwcu.cn/53931.shtmiuc.phxwcu.cn/71931.shtmiuc.phxwcu.cn/44354.shtmiuv.phxwcu.cn/02086.shtmiuv.phxwcu.cn/35993.shtmiuv.phxwcu.cn/26202.shtmiuv.phxwcu.cn/33759.shtmiuv.phxwcu.cn/85780.shtmiuv.phxwcu.cn/51339.shtmiuv.phxwcu.cn/22260.shtmiuv.phxwcu.cn/04468.shtmiuv.phxwcu.cn/59371.shtmiuv.phxwcu.cn/75913.shtmiub.phxwcu.cn/75973.shtmiub.phxwcu.cn/17155.shtmiub.phxwcu.cn/57113.shtmiub.phxwcu.cn/66082.shtmiub.phxwcu.cn/28062.shtmiub.phxwcu.cn/82646.shtmiub.phxwcu.cn/13153.shtmiub.phxwcu.cn/28460.shtmiub.phxwcu.cn/13997.shtmiub.phxwcu.cn/55377.shtmiun.phxwcu.cn/13911.shtmiun.phxwcu.cn/19311.shtmiun.phxwcu.cn/53373.shtmiun.phxwcu.cn/46020.shtmiun.phxwcu.cn/73935.shtmiun.phxwcu.cn/79731.shtmiun.phxwcu.cn/71739.shtmiun.phxwcu.cn/99315.shtmiun.phxwcu.cn/55113.shtmiun.phxwcu.cn/71759.shtmium.phxwcu.cn/37117.shtmium.phxwcu.cn/99731.shtmium.phxwcu.cn/53793.shtmium.phxwcu.cn/73319.shtmium.phxwcu.cn/91517.shtmium.phxwcu.cn/53731.shtmium.phxwcu.cn/53195.shtmium.phxwcu.cn/15971.shtmium.phxwcu.cn/97953.shtmium.phxwcu.cn/91555.shtmiiq.phxwcu.cn/15333.shtmiiq.phxwcu.cn/75195.shtmiiq.phxwcu.cn/53917.shtmiiq.phxwcu.cn/79319.shtmiiq.phxwcu.cn/15171.shtmiiq.phxwcu.cn/15977.shtmiiq.phxwcu.cn/51757.shtmiiq.phxwcu.cn/15397.shtmiiq.phxwcu.cn/55339.shtmiiq.phxwcu.cn/17757.shtmiiw.phxwcu.cn/11791.shtmiiw.phxwcu.cn/19915.shtmiiw.phxwcu.cn/75117.shtmiiw.phxwcu.cn/37397.shtmiiw.phxwcu.cn/55937.shtmiiw.phxwcu.cn/97959.shtmiiw.phxwcu.cn/95353.shtmiiw.phxwcu.cn/97773.shtmiiw.phxwcu.cn/55377.shtmiiw.phxwcu.cn/59511.shtmiie.phxwcu.cn/51155.shtmiie.phxwcu.cn/62086.shtmiie.phxwcu.cn/17519.shtmiie.phxwcu.cn/22602.shtmiie.phxwcu.cn/40460.shtmiie.phxwcu.cn/31597.shtmiie.phxwcu.cn/80884.shtmiie.phxwcu.cn/00426.shtmiie.phxwcu.cn/46642.shtmiie.phxwcu.cn/31175.shtmiir.phxwcu.cn/15551.shtmiir.phxwcu.cn/24884.shtmiir.phxwcu.cn/68068.shtmiir.phxwcu.cn/77577.shtmiir.phxwcu.cn/82204.shtmiir.phxwcu.cn/77977.shtmiir.phxwcu.cn/15177.shtmiir.phxwcu.cn/39973.shtmiir.phxwcu.cn/73795.shtmiir.phxwcu.cn/71153.shtmiit.phxwcu.cn/73739.shtmiit.phxwcu.cn/99393.shtmiit.phxwcu.cn/22864.shtmiit.phxwcu.cn/75379.shtmiit.phxwcu.cn/13757.shtmiit.phxwcu.cn/40086.shtmiit.phxwcu.cn/33137.shtmiit.phxwcu.cn/24624.shtmiit.phxwcu.cn/59335.shtmiit.phxwcu.cn/60466.shtmiiy.phxwcu.cn/64046.shtmiiy.phxwcu.cn/02488.shtmiiy.phxwcu.cn/59511.shtmiiy.phxwcu.cn/51777.shtmiiy.phxwcu.cn/44820.shtmiiy.phxwcu.cn/02826.shtmiiy.phxwcu.cn/46660.shtmiiy.phxwcu.cn/55199.shtmiiy.phxwcu.cn/55315.shtmiiy.phxwcu.cn/31339.shtmiiu.phxwcu.cn/11191.shtmiiu.phxwcu.cn/66220.shtmiiu.phxwcu.cn/40242.shtmiiu.phxwcu.cn/91575.shtmiiu.phxwcu.cn/73333.shtmiiu.phxwcu.cn/20880.shtmiiu.phxwcu.cn/00000.shtmiiu.phxwcu.cn/57197.shtmiiu.phxwcu.cn/26202.shtmiiu.phxwcu.cn/93159.shtmiii.phxwcu.cn/62862.shtmiii.phxwcu.cn/68464.shtmiii.phxwcu.cn/84006.shtmiii.phxwcu.cn/80448.shtmiii.phxwcu.cn/91511.shtmiii.phxwcu.cn/40686.shtmiii.phxwcu.cn/17597.shtmiii.phxwcu.cn/68042.shtmiii.phxwcu.cn/28406.shtmiii.phxwcu.cn/46862.shtmiio.phxwcu.cn/95939.shtmiio.phxwcu.cn/28006.shtmiio.phxwcu.cn/37399.shtmiio.phxwcu.cn/93179.shtmiio.phxwcu.cn/20664.shtmiio.phxwcu.cn/40444.shtmiio.phxwcu.cn/75957.shtmiio.phxwcu.cn/20826.shtmiio.phxwcu.cn/24286.shtmiio.phxwcu.cn/57997.shtmiip.phxwcu.cn/93933.shtmiip.phxwcu.cn/04440.shtmiip.phxwcu.cn/66662.shtmiip.phxwcu.cn/59757.shtmiip.phxwcu.cn/82684.shtmiip.phxwcu.cn/28884.shtmiip.phxwcu.cn/02008.shtmiip.phxwcu.cn/39119.shtmiip.phxwcu.cn/42446.shtmiip.phxwcu.cn/11937.shtmiia.phxwcu.cn/39715.shtmiia.phxwcu.cn/31195.shtmiia.phxwcu.cn/99537.shtmiia.phxwcu.cn/59175.shtmiia.phxwcu.cn/71175.shtmiia.phxwcu.cn/93973.shtmiia.phxwcu.cn/19357.shtmiia.phxwcu.cn/17731.shtmiia.phxwcu.cn/73919.shtmiia.phxwcu.cn/17173.shtmiis.phxwcu.cn/79731.shtmiis.phxwcu.cn/35933.shtmiis.phxwcu.cn/17395.shtmiis.phxwcu.cn/55553.shtmiis.phxwcu.cn/11155.shtmiis.phxwcu.cn/95371.shtmiis.phxwcu.cn/77937.shtmiis.phxwcu.cn/13335.shtmiis.phxwcu.cn/95199.shtmiis.phxwcu.cn/55517.shtmiid.phxwcu.cn/77999.shtmiid.phxwcu.cn/15117.shtmiid.phxwcu.cn/95953.shtmiid.phxwcu.cn/53717.shtmiid.phxwcu.cn/57513.shtmiid.phxwcu.cn/17117.shtmiid.phxwcu.cn/75917.shtmiid.phxwcu.cn/13375.shtmiid.phxwcu.cn/35737.shtmiid.phxwcu.cn/53397.shtmiif.phxwcu.cn/86244.shtmiif.phxwcu.cn/44068.shtmiif.phxwcu.cn/42480.shtmiif.phxwcu.cn/79173.shtmiif.phxwcu.cn/04228.shtmiif.phxwcu.cn/60428.shtmiif.phxwcu.cn/24484.shtmiif.phxwcu.cn/22686.shtmiif.phxwcu.cn/53357.shtmiif.phxwcu.cn/80428.shtmiig.phxwcu.cn/79397.shtmiig.phxwcu.cn/33115.shtmiig.phxwcu.cn/60024.shtmiig.phxwcu.cn/08406.shtmiig.phxwcu.cn/55713.shtmiig.phxwcu.cn/15771.shtmiig.phxwcu.cn/79557.shtmiig.phxwcu.cn/75115.shtmiig.phxwcu.cn/39197.shtmiig.phxwcu.cn/46228.shtmiih.phxwcu.cn/86006.shtmiih.phxwcu.cn/28206.shtmiih.phxwcu.cn/79577.shtmiih.phxwcu.cn/73157.shtmiih.phxwcu.cn/00466.shtmiih.phxwcu.cn/93153.shtmiih.phxwcu.cn/95373.shtmiih.phxwcu.cn/28206.shtmiih.phxwcu.cn/24288.shtmiih.phxwcu.cn/44220.shtmiij.phxwcu.cn/24240.shtmiij.phxwcu.cn/82462.shtmiij.phxwcu.cn/71999.shtmiij.phxwcu.cn/51755.shtmiij.phxwcu.cn/79399.shtmiij.phxwcu.cn/79137.shtmiij.phxwcu.cn/11933.shtmiij.phxwcu.cn/77119.shtmiij.phxwcu.cn/91155.shtmiij.phxwcu.cn/26822.shtmiik.phxwcu.cn/42080.shtmiik.phxwcu.cn/24244.shtmiik.phxwcu.cn/91535.shtmiik.phxwcu.cn/84060.shtmiik.phxwcu.cn/91775.shtmiik.phxwcu.cn/11173.shtmiik.phxwcu.cn/99393.shtmiik.phxwcu.cn/13317.shtmiik.phxwcu.cn/82262.shtmiik.phxwcu.cn/22802.shtmiil.phxwcu.cn/57913.shtmiil.phxwcu.cn/57859.shtmiil.phxwcu.cn/51311.shtmiil.phxwcu.cn/97199.shtmiil.phxwcu.cn/20084.shtmiil.phxwcu.cn/75519.shtmiil.phxwcu.cn/80644.shtmiil.phxwcu.cn/88204.shtmiil.phxwcu.cn/44046.shtmiil.phxwcu.cn/04628.shtmiiz.phxwcu.cn/37373.shtmiiz.phxwcu.cn/77573.shtmiiz.phxwcu.cn/53593.shtmiiz.phxwcu.cn/11579.shtmiiz.phxwcu.cn/37555.shtmiiz.phxwcu.cn/15397.shtmiiz.phxwcu.cn/46286.shtmiiz.phxwcu.cn/88464.shtmiiz.phxwcu.cn/15535.shtmiiz.phxwcu.cn/48206.shtmiix.phxwcu.cn/93999.shtmiix.phxwcu.cn/77793.shtmiix.phxwcu.cn/13957.shtmiix.phxwcu.cn/93737.shtmiix.phxwcu.cn/68406.shtmiix.phxwcu.cn/02646.shtmiix.phxwcu.cn/95315.shtmiix.phxwcu.cn/95975.shtmiix.phxwcu.cn/64600.shtmiix.phxwcu.cn/11339.shtmiic.phxwcu.cn/77937.shtmiic.phxwcu.cn/68622.shtmiic.phxwcu.cn/33177.shtmiic.phxwcu.cn/91115.shtmiic.phxwcu.cn/11519.shtmiic.phxwcu.cn/62848.shtmiic.phxwcu.cn/37999.shtmiic.phxwcu.cn/75797.shtmiic.phxwcu.cn/39531.shtmiic.phxwcu.cn/44462.shtmiiv.phxwcu.cn/39955.shtmiiv.phxwcu.cn/66028.shtmiiv.phxwcu.cn/80066.shtmiiv.phxwcu.cn/19599.shtmiiv.phxwcu.cn/42006.shtmiiv.phxwcu.cn/79939.shtmiiv.phxwcu.cn/00844.shtmiiv.phxwcu.cn/53399.shtmiiv.phxwcu.cn/15771.shtmiiv.phxwcu.cn/17773.shtmiib.phxwcu.cn/55399.shtmiib.phxwcu.cn/19377.shtmiib.phxwcu.cn/97753.shtmiib.phxwcu.cn/91379.shtmiib.phxwcu.cn/33591.shtmiib.phxwcu.cn/31953.shtmiib.phxwcu.cn/11937.shtmiib.phxwcu.cn/91913.shtmiib.phxwcu.cn/31339.shtmiib.phxwcu.cn/71733.shtmiin.phxwcu.cn/37379.shtmiin.phxwcu.cn/53979.shtmiin.phxwcu.cn/57579.shtmiin.phxwcu.cn/51355.shtmiin.phxwcu.cn/77573.shtmiin.phxwcu.cn/97717.shtmiin.phxwcu.cn/91575.shtmiin.phxwcu.cn/04226.shtmiin.phxwcu.cn/99939.shtmiin.phxwcu.cn/64882.shtmiim.phxwcu.cn/80006.shtmiim.phxwcu.cn/71779.shtmiim.phxwcu.cn/97777.shtmiim.phxwcu.cn/95391.shtmiim.phxwcu.cn/31375.shtmiim.phxwcu.cn/11937.shtmiim.phxwcu.cn/84406.shtmiim.phxwcu.cn/97531.shtmiim.phxwcu.cn/99735.shtmiim.phxwcu.cn/51937.shtmioq.phxwcu.cn/55759.shtmioq.phxwcu.cn/79337.shtmioq.phxwcu.cn/57771.shtmioq.phxwcu.cn/84686.shtmioq.phxwcu.cn/46242.shtmioq.phxwcu.cn/24008.shtmioq.phxwcu.cn/68804.shtmioq.phxwcu.cn/19573.shtmioq.phxwcu.cn/82028.shtmioq.phxwcu.cn/93751.shtmiow.phxwcu.cn/77915.shtmiow.phxwcu.cn/73111.shtmiow.phxwcu.cn/26684.shtmiow.phxwcu.cn/28604.shtmiow.phxwcu.cn/05537.shtmiow.phxwcu.cn/79791.shtmiow.phxwcu.cn/95173.shtmiow.phxwcu.cn/64082.shtmiow.phxwcu.cn/44284.shtmiow.phxwcu.cn/91199.shtmioe.phxwcu.cn/37519.shtmioe.phxwcu.cn/26662.shtmioe.phxwcu.cn/53216.shtmioe.phxwcu.cn/02440.shtmioe.phxwcu.cn/28864.shtmioe.phxwcu.cn/13951.shtmioe.phxwcu.cn/79391.shtmioe.phxwcu.cn/99973.shtmioe.phxwcu.cn/59517.shtmioe.phxwcu.cn/17995.shtmior.phxwcu.cn/62068.shtmior.phxwcu.cn/12220.shtmior.phxwcu.cn/86206.shtmior.phxwcu.cn/71151.shtmior.phxwcu.cn/23248.shtmior.phxwcu.cn/62626.shtmior.phxwcu.cn/77599.shtmior.phxwcu.cn/19333.shtmior.phxwcu.cn/24404.shtmior.phxwcu.cn/28424.shtmiot.phxwcu.cn/93735.shtmiot.phxwcu.cn/79599.shtmiot.phxwcu.cn/02460.shtmiot.phxwcu.cn/75595.shtmiot.phxwcu.cn/82862.shtmiot.phxwcu.cn/97357.shtmiot.phxwcu.cn/77991.shtmiot.phxwcu.cn/24866.shtmiot.phxwcu.cn/79395.shtmiot.phxwcu.cn/55915.shtm