2 u012499057 u012499057 于 2016.01.22 14:18 提问

vector,多线程的C问题

我需要用createthread将vector的里的数据输出,求各位帮个忙吧

6个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 14:22

看你怎么输出,理论上,你一个线程输出就够了,干嘛多线程。非要多线程,那么在迭代vector的时候同步下

http://www.jb51.net/article/56041.htm

u012499057
u012499057 具体情况在下面,我觉得应该是问号处写错了
接近 2 年之前 回复
caozhy
caozhy 回复szkjxylm: 你怎么同步的
接近 2 年之前 回复
u012499057
u012499057 单个线程只输出vector的一个数据,在多线程传值的时候出现了乱码!可是我已经注意同步了啊!所以我想要个例子
接近 2 年之前 回复
u012499057
u012499057   2016.01.22 14:34

![图片说明](http://img.ask.csdn.net/upload/201601/22/1453444439_807127.png)图片说明

u012499057
u012499057   2016.01.22 14:34

请问两个问号处怎么填?第二个问号处我是要输出传下来的值

u012499057
u012499057   2016.01.22 14:37

图片说明

caozhy
caozhy 你可以传i,这样线程可以知道自己是第几个线程
接近 2 年之前 回复
John_ToStr
John_ToStr   Rxr 2016.01.23 10:09

http://www.cnblogs.com/BeyondTechnology/archive/2010/08/30/1813082.html
第四个参数为传递给ThreadProc的参数。这样主线程和从属线程就可以共享数据。、
但是不想传的话,一般给传个NULL就可以。

func7
func7   2016.01.23 13:58

CreateThread那个地方填(void*)p
后面线程函数
DWORD __stdcall ThreadFunc(void* p)
{
vector& vec = (vector)p;
//…
}

func7
func7 回复mk256: 为什么显示内容跟我发的不一样![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/17.gif)用手机发的 vector<string>& vec=*(vector<string>*)p;
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!