Получение идентификатора потока текущего вызова метода - PullRequest
117 голосов
/ 24 октября 2009

Есть ли способ распечатать идентификатор текущего потока, в котором выполняется текущий метод?

(цель-с, пожалуйста)

Ответы [ 6 ]

216 голосов
/ 24 октября 2009
NSLog(@"%@", [NSThread currentThread]);
33 голосов
/ 20 марта 2013
#include <pthread.h>
...
mach_port_t machTID = pthread_mach_thread_np(pthread_self());
NSLog(@"current thread: %x", machTID);
21 голосов
/ 04 декабря 2016

In Swift3

print("Current thread \(Thread.current)")
11 голосов
/ 21 сентября 2015

In Swift

print("Current thread \(NSThread.currentThread())")
1 голос
/ 05 ноября 2018

В Swift4

печать ( "\ (Thread.current)")

0 голосов
/ 29 октября 2014

вы можете взломать что-то вроде этого (это просто печатает довольно, но вы можете пойти дальше и разбить, пока не получите номер):

+ (NSString *)getPrettyCurrentThreadDescription {
    NSString *raw = [NSString stringWithFormat:@"%@", [NSThread currentThread]];

    NSArray *firstSplit = [raw componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"{"]];
    if ([firstSplit count] > 1) {
        NSArray *secondSplit     = [firstSplit[1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"}"]];
        if ([secondSplit count] > 0) {
            NSString *numberAndName = secondSplit[0];
            return numberAndName;
        }
    }

    return raw;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...