objective-c로 분산 객체를 사용하는 서버/클라이언트 응용 프로그램이 있습니다. 지금 당장 힘 쓰고있는 것은 앱을 멀티 스레드로 만드는 것입니다. 따라서 더 많은 사용자가 동시에 서버에 액세스 할 수 있습니다.Distributed Objects, Threading, Objective-C
다음은 서버의 주요 기능입니다. 이것은 nsconnection 객체를 생성하는 곳입니다.
필자가 이해해야 할 것은 사용자가 서버에 액세스하려고 할 때 특정 호출에 대해 새 스레드를 할당해야한다는 것입니다. [conn runInNewThread]가 처리해야합니까?
감사 어떤 생각 ... 여기
는 서버의 코드입니다. 클라이언트의 메시지에 응답하기 위해
int main (void)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Transactions *trans = [Transactions new];
NSConnection *conn = [NSConnection defaultConnection];
[conn setRootObject: trans];
[conn runInNewThread];
if (![conn registerName:@"holycow"])
{
NSLog (@"Failed registering holycow.");
exit (1);
}
NSLog (@"waiting for connections...");
[[NSRunLoop currentRunLoop] run];
[pool release];
return 0;
}
이것은 나를위한 것 같습니다. 나는 두 개의 클라이언트 응용 프로그램을 동시에 DO를 통해 동기식 (즉, oneway 키워드를 사용하지 않았다) 클래스 메서드를 호출하도록 할 수있었습니다. 그것은 그것을 위해 자동으로 쓰레드처럼 보였습니다. 서버가 바쁜 일을 하느라 바빴 기 때문에 다소 느린 편 이었지만, 잠깐만 기다리면 서버는 다른 작업을 동시에 처리하는 동안 응답했습니다. 그러나 코더는 oneway (async) 메서드를 사용하여 작업을 시작한 다음 빠른 속도로 실행되는 동기화 메서드를 사용하여 코드를 검사하는 것이 좋습니다. – Volomike