Java - 在主线程上运行一个方法,从工作线程调用

时间:2015-07-22 14:01:52

标签: java multithreading

如何在主线程上调用并运行一个方法,从其工作线程调用?

主线程代码,(Foo()函数可从主线程访问):

"skill_level"

工作线程代码(newThread):

Thread newThread = new Thread(myThread, myThread.getThreadName());
newThread.start();

谢谢!

1 个答案:

答案 0 :(得分:-1)

“在另一个线程中调用方法”这个词在Java中没有任何意义。

您需要了解Thread线程是两回事:线程是通过某些代码执行的路径。 Thread是一个Java对象,可用于启动新线程并管理其生命周期。

当一些其他线程调用t.start() t引用Thread对象时,新线程开始。线程开始执行t.run()方法,它进入和退出函数调用,直到它到达t.run()的末尾,此时它就会死掉。与此同时,其他线程正在通过代码遵循自己的路径。

在最低级别,一个线程与另一个线程交互的 only 方式是更新共享对象和类的字段。

线程A可以通过发送消息(即通过更新某个对象中的字段)来告诉线程B执行某个函数或其他函数,但是线程A永远不能 make 线程B做某事。线程B只能执行它正在执行的代码所要做的事情。如果代码说明,请查看字段f,如果其值大于零,则调用函数foobar(),那么这就是线程B将执行的操作。或者,如果代码告诉它从队列中弹出Runnable并调用Runnable的run()方法,那么这就是该线程将要做的事情。

但是一旦线程开始运行,任何其他线程都没有线程可以更改代码。它只能更改影响代码下一步操作的字段。