guang19's recent timeline updates
guang19

guang19

V2EX member #575663, joined on 2022-03-16 14:50:50 +08:00
guang19's recent replies
Aug 29, 2022
Replied to a topic by DonaldY 程序员 分享文章: TCP 粘包? TCP 警察什么梗
把协议设计好基本不会出现所谓的“粘包”
总有人拿一个文本编辑器跟一个 IDE 比较,这究竟是道德的沦丧还是人性的扭曲呢?
看了下,你这 SEO 怎么解决呢?
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
@ColorfulBoar 惊了,学习了,谢谢大佬。
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
@ColorfulBoar 等 5 秒中都不执行的线程,非要手工指定 join 或 detach 状态的线程,你觉得离谱吗?
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
@ColorfulBoar 那请你帮个忙把这段代码贴到 linux 下去运行下,这个线程会不会执行,我的 archlinux 和 ubuntu 反正是不行的:
````
::std::thread t1([] ()
{
::printf("%s\n", "hello world");
});
::std::this_thread::sleep_for(::std::chrono::milliseconds(5000));
````
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
@elfive 因为我写的这个库是基于 linux 的,所以自己基于 posix pthread 封装的线程,cpp11 的 thread 太难用了,跟坨屎一样,创建之后非要调 join 或 detach 才会执行,join 阻塞主线程就不说了,而 detach 更是难用。
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
@statumer 谢谢老哥,我大概知道为什么 use_count 为 3 了,在 shared_ptr 传参的过程中被复制了几次,所以造成引用次数不一致。有时候任务线程执行的快,被拷贝的 shared_ptr 来不及析构,lambda 此时执行的时候的 use_count 就是 3 ;任务线程执行的慢,等其他被拷贝的被析构了,只剩下 lambda 捕获的 shared_ptr 了,此时执行 use_count 就是 1 。我又测试了好多遍,虽然 use_count 不一致,但 task 执行的结果却没错,这证明了 lambda 只会是最后一个 shared_ptr ,lambda 结束后并不会造成泄漏。
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
又 debug 了下,大概是我阻塞队列写的有点问题。。。
May 10, 2022
Replied to a topic by guang19 程序员 请教一个 shared_ptr 内存泄漏的问题
我这样写也有问题:
````
auto asyncTask = ::std::make_shared<::std::packaged_task<RetType ()>>(
::std::bind(::std::forward<Fn>(func), ::std::forward<Args>(args)...));
auto future = asyncTask->get_future();
TaskType task = [asyncTask]() mutable
{
assert(asyncTask.use_count() == 1);
(*asyncTask)();
};
assert(asyncTask.use_count() == 2);
````

我发现这应该是 lambda 捕获 shared_ptr 引用错乱的问题,可能不是我代码的问题
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   761 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 21:03 · PVG 05:03 · LAX 14:03 · JFK 17:03
♥ Do have faith in what you're doing.