初学boost碰到点问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学boost碰到点问题相关的知识,希望对你有一定的参考价值。
class Test
: public boost::enable_shared_from_this<Test>
public:
Test()
std::cout<<this<<" create"<<std::endl;
~Test()
std::cout<<this<<" destroy"<<std::endl;
;
typedef boost::shared_ptr<Test> TestPtr;
class Container
public:
void add()
TestPtr p(new Test());
list.push_back(p);
void del()
list.pop_back();
private:
std::vector<TestPtr> list;
;
如我所愿的,调用del的时候或者container析构的时候才会destroy。
现在仅仅是把Test换成boost::thread。
void manager::start()
for(std::size_t i = 0; i < thread_count_; i++)
thread_ptr t(new boost::thread(boost::bind(&boost::asio::io_service::run, &service_)));
thread_pool_.push_back(t);
于是效果不一样了,好像出了scope这些thread都析构了一样,但不是,只是单纯的线程都退出了。。。我不想让start阻塞。
下面说临时变量的没仔细看。
TestPtr也是临时变量,但似乎是boost维护了引用计数的原因并没有当场析构,只有在显示调用del或者container析构的时候才析构。
t是临时对象,并且处在for块里,for完了之后t对象就会析构
在最新的c++规范中,for里的临时变量会自动消亡的
建议用new操作符来生成t,而不要用构造函数
一点碰到的基础
以下是我在简单玩kali时候碰到的一些问题,然后找到的解决办法,能成功解决我当时碰到的问题,如果你有疑问或者碰到不能解决的问题可以在下面评论
################################################
解决不能上网的时候可能用到;其中ping某个网页ping不通,可以使用wget查看一下能不能接收,或者用traceroute看一下
网络设置:
1、配置ip
配置文件:/etc/network/interfaces 可以用leafpad或者vim打开
配置自动获取ip
auto eth0
iface eth0 inet dhcp
配置静态ip:
auto eth0
iface eth0 inet static //配置eth0使用默认的静态地址
address 192.168.77.133 //设置eth0的IP地址
netmask 255.255.255.0 //配置eth0的子网掩码
gateway 192.168.77.254 //配置当前主机的默认网关
2、配置dns:
配置文件:/etc/resovl.conf
格式如下:
domain
nameserver 10.10.10.10
nameserver 102.54.16.2
3、重启网络服务
/etc/init.d/networking restart
##################################################
配置更新源:
配置文件:
/etc/apt/sources.list
内容改成其中一个:
#kali官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
#中科大的源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
deb http://mirrors.ustc.edu.cn/kali-security kali-current/updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/kali-security kali-current/updates main contrib non-free
#阿里云源
deb http://mirrors.aliyun.com/kali sana main non-free contrib
deb http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
deb-src http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
我成功使用的是:
deb http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
或者:
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
更新命令:
apt-get update
apt-get upgrade
apt-get dist-upgrade # 大版本更新的时候使用
apt-get clean 清除下载的安装包
apt-get update --fix-missing # 可能有些没有更新的。使用这个
###########################################################
签名无效情况:如下列情况
保证网络ok,在终端执行命令:
apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys ED444FF07D8D0BF6
我是这么解决的。
以上是关于初学boost碰到点问题的主要内容,如果未能解决你的问题,请参考以下文章