Thread 멀티스레드

1701 단어
(스레드, 스레드와 프로세스의 차이, 다중 스레드가 무슨 소용이 있는지, 직렬이 무엇인지, 병행이 무엇인지 소개하지 않는다)
스레드 시나리오
  • Pthreads C 언어 기반
  • NSThread
  • GCD
  • NSOperation & NSOperationQueue

  • Thread
  • Objective-C
  • 생성 및 시작
    //     【object :           】
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"Cancer"];
    //    
    [thread start];
    

    Swift
    //     【object :           】
    let thread = NSThread(target: self, selector: "run:", object: "Cancer")
    //    
    thread.start()
    
  • Objective-C
  • 생성 및 자동 시작
    //         【detach     】
    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"Cancer"];
    

    Swift
    //         【detach     】
     NSThread.detachNewThreadSelector("run:", toTarget: self, withObject: "Cancer")
    

    Thread에는 또 다른 방법이 많아요.
    //    
    - (void)cancel;
    //    
    - (void)start;
    //            
    @property (readonly, getter=isExecuting) BOOL executing;
    @property (readonly, getter=isFinished) BOOL finished;
    @property (readonly, getter=isCancelled) BOOL cancelled;
    //         
    -(void)setName:(NSString *)n;
    -(NSString *)name;
    //        
    + (NSThread *)currentThread;
    //       
    + (NSThread *)mainThread;
    //           
    + (void)sleepForTimeInterval:(NSTimeInterval)time;
    //       
    + (void)sleepUntilDate:(NSDate *)date;
    

    SWIFT Swift의 방법 이름은 OC의 방법 이름과 똑같기 때문에 나는 공간을 낭비하지 않고 열거했다.
    사실 NSThread는 사용하기에도 매우 간단하다. 왜냐하면 그것은 몇 가지 방법이기 때문이다.또한 우리는 아주 간단한 장면에서만 NSThread를 사용할 수 있다. 왜냐하면 그것은 지능이 부족하고 다중 라인의 다른 고급 개념을 우아하게 처리할 수 없기 때문이다.그러니까 다음에 할 얘기가 포인트야.

    좋은 웹페이지 즐겨찾기