Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得一个;“家长”;iOS中NSThread的线程?_Ios_Iphone_Multithreading_Nsthread - Fatal编程技术网

如何获得一个;“家长”;iOS中NSThread的线程?

如何获得一个;“家长”;iOS中NSThread的线程?,ios,iphone,multithreading,nsthread,Ios,Iphone,Multithreading,Nsthread,假设“父”线程不是主线程。我如何从线程中知道是什么线程触发了它的创建 示例: 主线程触发ThreadA的创建 ThreadA触发ThreadB的创建 在ThreadB中,我想知道ThreadA是它的“父” UPD: 我没有在我的应用程序中创建线程。我正在尝试为现有的应用程序插入仪器。您不能。没有父线程这样的东西。线程是一个独立的实体,即使一个线程可以与其他线程通信,但不涉及层次结构 你不能。没有父线程这样的东西。线程是一个独立的实体,即使一个线程可以与其他线程通信,但不涉及层次结构 如前一篇文章

假设“父”线程不是主线程。我如何从线程中知道是什么线程触发了它的创建

示例:

  • 主线程触发ThreadA的创建
  • ThreadA触发ThreadB的创建
  • 在ThreadB中,我想知道ThreadA是它的“父”
  • UPD:
    我没有在我的应用程序中创建线程。我正在尝试为现有的应用程序插入仪器。

    您不能。没有父线程这样的东西。线程是一个独立的实体,即使一个线程可以与其他线程通信,但不涉及层次结构

    你不能。没有父线程这样的东西。线程是一个独立的实体,即使一个线程可以与其他线程通信,但不涉及层次结构

    如前一篇文章所述,您不能直接访问另一个线程的“父”线程,因为NSThread是独立的

    但是您可以创建一种机制,使用
    -threadDictionary
    -name/setName
    方法间接访问启动当前线程的线程

    基本上,您可以创建一个自定义线程池,该线程池将处理线程生命周期,并且可以从其他线程访问


    但作为观察,我看不出这种机制有什么用处。如果您确实希望在后台运行任务,并且希望能够更改后台任务的生命周期(取消/启动/等),则应使用NSOperation和NSOperationQueue,这两个工具将为您提供自定义线程池所需的所有功能。

    如前一篇文章所述,您不能直接访问“父线程”另一个线程的线程,因为NSThread是独立的

    但是您可以创建一种机制,使用
    -threadDictionary
    -name/setName
    方法间接访问启动当前线程的线程

    基本上,您可以创建一个自定义线程池,该线程池将处理线程生命周期,并且可以从其他线程访问


    但作为观察,我看不出这种机制有什么用处。如果您确实希望在后台运行任务,并且希望能够更改后台任务的生命周期(取消/启动/等),则应使用NSOperation和NSOperationQueue,这两个选项将为您提供自定义线程池所需的所有功能。

    当您“detachNewThreadSelector:toTarget:withObject:”?

    当您“detachNewThreadSelector:toTarget:withObject:“?

    是否尝试将NSThread子类化并添加自定义属性。然后重写+detachNewThreadSelector:toTarget:withObject:Method如果您需要与父线程通信,那么这个问题可能对您有用:您是否尝试将NSThread子类化并添加自定义属性。然后重写+detachNewThreadSelector:toTarget:withObject:Method如果需要与父线程通信,那么这个问题可能对您有用:这是正确的答案。所有的线都是兄弟线。没有父母和孩子。我花了一些时间才明白。这是正确的答案。所有的线都是兄弟线。没有父母和孩子。我花了一段时间才明白,我试着用仪器测试,但什么也没发生。在调度队列时,GCD似乎没有使用这种特定的方法。他们到底用了什么还不清楚。我试着装上仪器,但什么也没发生。在调度队列时,GCD似乎没有使用这种特定的方法。他们真正使用的东西并不明显。