我会提前说,下面会有一些水,因为我会在下面尽可能准确和清楚地描述我的问题的本质。
这个问题可能看起来很简单,但这不是关于如何以传统方式创建流,以及应该使用什么。我需要了解 Java 如何基于 Thread、Runnable 以及 run() 和 start() 方法创建单独的线程。
从某种意义上说,好吧,只是理论上,让我们度过美好的一天,我想编写这样一个类,类似于 Thread 但不是从 Thread 本身继承,而是创建一个单独的类,以某种方式尝试使其成为与 Thread 相同,因此它本身可以在没有 Thread 和 Runnable 的帮助下创建或简单地帮助创建新线程,就像 Thread 对 Runnable 所做的那样。
我将为此做些什么?好吧,或者只是问题的本质:Thread 如何设法与 Runnable 一起创建一个单独的线程?
我对在程序中创建和包含新线程的过程的机制很感兴趣。
另外:请务必在您的回答中指出创建新线程的机制与创建和调用线程的 main () 方法有何不同。
如果查看方法的源代码
Thread#start,您可以看到该方法在那里被调用:也就是说,线程的启动是以某种方式本地实现的。如果要编写自己的类
class MyOwnBestThread,则必须使用 jni 来创建本机线程。没有什么
该链如下所示:
- 您编写的代码要求 JVM 创建一个线程
- JVM 要求操作系统创建一个线程
- 操作系统创建一个线程并调节其执行。
操作系统具有 CPU 资源,它为特定线程分配它们,调节哪个线程以及它将占用多少资源。
有餐饮哲学家的问题。当几个消费者争夺有限的资源时。这是操作系统级别,这是它的任务。因此,这不应该在 Java 中解决。