请问有人在Linux下用过STLPort么

hitytl 2008-06-11 09:39:19
我直接解压到/usr/local/下,然后在/usr/local/STLport-5.1.5/build/lib/下make -f gcc.mak install,最后作了一些库的链接(把/usr/local/STLport-5.1.5/lib/下所有东西连到/usr/lib/下)。
之后编了个程序,使用编译命令g++ -pthread -I/usr/local/STLport-5.1.5/stlport/ thread1.cpp -L/usr/lib/ -lstlport -o thread1,但是程序的输出好像和不使用STLPort一样,能帮我看下么,谢谢

代码是
#include <string.h>
#include <pthread.h>
#include <set>
#include <iostream>
int MAX= 2;
int LENGTH= 2;

using namespace std;

void *thread_func(void *args)
{
int *id=(int *)args;

set<int> value;

value.clear();

for(int i=0;i<LENGTH;i++)
{
int a=i*(*id);
value.insert(a);
cout<<endl<<a<<endl;
}
cout<<"size is "<<value.size()<<endl;

for(set<int>::iterator it=value.begin();it!=value.end();it)
{
std::cout<<" value is "<<*it<<endl;
}
}

int main (int argc, char * argv[])
{
int sn;
pthread_t tid[MAX];

for(sn=0;sn<MAX;sn++)
{
pthread_create ( &tid[sn], NULL, thread_func,(void *)&sn);
}

for(sn=0;sn<MAX;sn++)
{
pthread_join (tid[sn], NULL);
}

cout<<"Bye"<<endl;
}
...全文
200 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hitytl 2008-06-11
  • 打赏
  • 举报
回复
谢谢回复。因为原来的代码是单线程的,而且用的STL元素操作相当的频繁,现在要改成多线程的程序,所以想找个简单的方法。可是GCC自带的STL在多线程下数据不能保证安全型吧,需要自己加锁。我从网上看到好像说STLPort中的容器可以保证多线程的安全性。那是不是用了STLPort中的STL容器,在多线程时就不需要自己加锁解锁保证数据的安全性了,保持原先的单线程代码,不添加任何加锁解锁操作就可以了,不知道我的理解是否有问题。谢谢!
过客猫2022 2008-06-11
  • 打赏
  • 举报
回复
不需要,GCC自带的STL已经非常好了。

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧