【发布时间】:2015-07-15 00:00:04
【问题描述】:
我在一个服务器对象中有多个执行相同任务的线程。这些线程使用 Server::* 例程初始化。
在这个例程中,有一个带有一些处理的无限循环。
我想知道对多个线程使用相同的方法是否是线程安全的?难怪类的字段,如果我想读或写它,我会使用互斥锁。但是例程本身呢?
既然函数是一个地址,那么那些线程将运行在同一个内存区域?
我需要为每个线程创建一个具有相同代码的方法吗?
Ps:我使用 std::mutex(&Server::Task, this)
【问题讨论】:
-
只要您的互斥锁可以防止所有形式的潜在损坏数据,您应该没问题。
-
是的,但这是我的问题:在成员函数的情况下,不是每条指令都可能损坏数据吗?我的“while”指令会被同时执行的多个线程破坏吗?由于此方法具有唯一的地址...
-
很不清楚你在问什么。请提供一个具体的、完整的小例子。
-
你似乎混淆了 code 和 data。
标签: c++ multithreading stdthread