그래서 이런의 int 또는 상수 뭔가 같은 간단한 데이터 ++ С에 대한 * 문자를 시스템 가입과 같은 이벤트가
#include <iostream>
#include <vector>
using namespace std ;
typedef void FuncInt (int) ;
class GraphElementProto {
public:
void add (FuncInt* f)
{
FuncVec.push_back (f) ;
} ;
void call()
{
for (size_t i = 0 ; i < FuncVec.size() ; i++)
FuncVec[i] (i) ;
} ;
private:
vector<FuncInt*> FuncVec ;
} ;
static void f0 (int i) { cout << "f0(" << i << ")" << endl ; }
static void f1 (int i) { cout << "f1(" << i << ")" << endl ; }
int main() {
GraphElementProto a ;
a.add (f0) ;
a.add (f1) ;
a.call() ;
}
그래서 지금 우리는 문자 같은 일부 데이터 버퍼 작업을 상상 일 것이기 만들기.
우리는 데이터 포인터를 기다리는 스레드가 있으며 포인터가 데이터를 동시에 변경하려고하는 것처럼 보입니다. 따라서 우리는 그 데이터의 복사본을 생성하고 각 가입자 포인터에 자신의 사본을 제공해야합니다.
그런 일을하는 방법? (죄송합니다 C + +의 누브 - 코드는 내가 이해할 수있는 유일한 것입니다)
저는 C++ nube가 아니지만 귀하의 질문을 귀하의 질문보다 훨씬 잘 이해합니다. 정교하게하십시오 –
나는 질문을 편집했다 - 지금 그것은 더 좋을 것이다.) – Rella
나는 당신이 묻고 싶어하는 것을 아직도하고있다라고 말해야한다/거기에서해라. 동일한 데이터에 쓰려고하는 여러 스레드가 있다면 거기에서 문제가 발생하지 않을 것입니다.하지만 아무 것도 수정하지 않으면 데이터를 수정하는 시점이 무엇인지 나중에 다시 병합하는 방법을 고려해야합니다. 하지만 C++을 처음 접한다면, 쓰레드를 사용해야합니까? C++은 충분히 어렵 기 때문에 스레딩은 완전히 새로운 두통을 불러옵니다. – Grizzly