Получение идентификатора потока текущего вызова метода Есть ли способ распечатать текущий идентификатор потока, на котором выполняется текущий метод? (objective-c пожалуйста) Ответ 1 NSLog(@"%@", [NSThread currentThread]); Ответ 2 #include <pthread.h> ... mach_port_t machTID = pthread_mach_thread_np(pthread_self()); NSLog(@"current thread: %x", machTID); Ответ 3 В Swift3 print("Current thread \(Thread.current)") Ответ 4 В Swift print("Current thread \(NSThread.currentThread())") Ответ 5 вы можете взломать что-то вроде этого (это просто печатает красиво, но вы можете продолжить и разделить, пока не получите номер): + (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; }
Ответ 2 #include <pthread.h> ... mach_port_t machTID = pthread_mach_thread_np(pthread_self()); NSLog(@"current thread: %x", machTID);
Ответ 5 вы можете взломать что-то вроде этого (это просто печатает красиво, но вы можете продолжить и разделить, пока не получите номер): + (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; }