如题

解决方案 »

  1.   

    java里好像没有“父thread”和“子thread”的概念吧?你这里所说的父子关系是不是指“如果thread a里面创建了thread b,那么a就是b的父thread”?好像,“英雄不问出处”,这个依赖关系在java里面是没有内建支持的,如果你需要维护这样一个关系,只能自己用变量保存了,ThreadLocal也许能帮你维护这样一个变量。不过我比较感兴趣你为什么要维护这样的依赖关系呢?
      

  2.   

    maquan===>多谢回答,java里确实没有父thread和子thread概念,我问这个目的主要想实现事务处理时,多子thread(假设有)共同取得父thread的某个对象,有人可能会问这个可以用传参的形式可以解决,但我这接口是不可能用这种方式解决的;我这种想法是想用快捷的方式实现事务的功能,如果他办法也可以但较麻烦而以
      

  3.   

    听上去像是一个数据对象访问的问题,而不是一个多线程的问题。“取得父thread的某个对象”这个问题真的存在吗?我不了解你的实际项目背景,不过,一般来说,一个对象没有必要归属于某个线程,它一定是存在于内存里某个地方的,你可以让每个线程都能访问到它,只是不同的线程访问方式不同罢了(比如一个线程负责维护这个对象,其它线程只使用它的值)。ThreadLocal 倒是实现了“对象只属于一个特定的线程”,但它的目的是实现“同一个 Thread class,同一个变量名,但实际运行时使用的是互相独立的对象”,这个述求跟你的目标刚好是相反的。