【发布时间】:2011-01-27 13:25:19
【问题描述】:
当一个对象在Java中实例化时,它是否绑定到实例化的线程上?因为当我在一个线程中匿名实现一个接口,并将它传递给另一个线程运行时,它的所有方法都在原来的线程中运行。如果它们被绑定到它们的创建线程,是否有办法创建一个在调用它的线程中运行的对象?
【问题讨论】:
-
你怎么知道它们是“在原始线程中运行的”?
-
所以你创建了一个匿名类来实现一些接口。您如何“将其传递给另一个线程”?管道?溪流?作为增强传递给线程的类构造函数?
-
好吧,我通过消息传递它。当另一个线程收到消息并尝试运行代码(即绘图代码)时,它声称我正在从原始线程进行绘图,这是被禁止的。
-
您需要提供更多信息。首先,您不使用 java VM,而是使用 androids Dalvik VM。其次,您使用 android 绘图 API,哪些以及如何使用?在单独的线程中在 Android 上进行绘图有一些要求,因为多个调用实际上并不绘制任何东西,而是添加绘图指令,这些指令在可能发生在不同线程中的无效之前不会执行。所以需要更多信息和代码。
标签: java multithreading heap-memory stack-memory anonymous-class