// ThreadVisitSource.cpp : 定义控制台应用程序的入口点。
// For Test Once:两个线程访问共同的资源vector,这里主线程负责读取外部txt
// 文档数据,并把字符串压进Vector;从线程负责从Vector中读取数据,并把其输出到控制台上
// 实验结果:成功!可以访问共同的资源。
// For Test Twice,第二次实验,居然不行了,从线程很快就退出了~
// 每次实验的结果几乎都不相同,这就是多线程下的结果不确定性?由于
// 一个线程到另一个线程之间的切换和轮询并不是可以预料的,哪个线程什么时候结束我们也无法知道
// --异步性
// 而这里的从线程是否结束和主线程有关,如果主线程没有把串压进Vector里,那么切换到从线程的时候,很
// 容易从线程就退出了,因为vs的size为0,这时就失去了这个从线程;
// 在实验中出现了一次比较好的情况,主线程先压串,压一个从线程读一个,压一个从线程读一个,一直下去
// 到从线程读完所有的串;
// 当然这种情况不是每次都有,所以最后结论为,这样使用多线程共同的访问大小动态变化的vector并不牢靠
#include "stdafx.h"
#include "zthread/thread.h"
#include <vector>
#include <string>
#include <fstream>
using namespace std;
using namespace ZThread;