这令人困惑,因为可运行对象被命名为WorkerThread,但是它们不扩展java.lang.Thread,它们只是实现可运行对象的对象。实施Runnable使您可以指定需要执行的任务,而不必实例化实际的Thread对象。在您的示例中创建的唯一线程是主线程和执行程序创建的线程。
请注意,即使您更改此代码以使WorkerThread扩展Thread,只要代码不对其调用start,也不会导致实际运行更多线程。构造线程对象涉及到诸如与安全管理器进行检查以及初始化threadlocals之类的事情,但是实际上在 *** 作系统级别上并没有做任何事情来分配线程。就执行程序而言,它们只是Runnable,它将使用线程池的线程执行它们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)