C++中两个线程用同一个list进行数据传递

ubuntu14.04下编译命令:

g++ -std=c++11 test_list.cpp -o test -pthread

#pragma GCC diagnostic error "-std=c++11"
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
mutex mtx;

typedef struct send
{
    int command;
    list namelist;
}sendmsg;

list sendmsglist;

void sendthread()
{
	sendmsg msg;
	for(int i=0;i<10;i++)
	{
		msg.command=i;
		msg.namelist.clear();
		msg.namelist.push_back("1111111111");
		msg.namelist.push_back("22222222222222");
		msg.namelist.push_back("3333333333333333");
		mtx.lock();
		sendmsglist.push_back(msg);
		mtx.unlock();
		cout<<"sendthread----"<::iterator it;
	list::iterator it1;
	int command=0;
	while(1)
	{
		//cout<<"---------------------000----------------------------------------"<0)
		{
			for(it=sendmsglist.begin();it!=sendmsglist.end();it++)
			{
				cout<<"command:"<command<namelist.begin();it1!=it->namelist.end();it1++)
				{
					cout<<*it1<namelist.clear();
				cout<<"------------------------------------------------"<

你可能感兴趣的:(C++基础)