Fiber是Java中即将出现的功能,它将提供轻量级的Threads替代方案。 但是问题是为什么纤维,一个词回答它是“钱”。
Java创建的每个线程都对应于操作系统线程。 创建线程不仅成本高昂,而且上下文切换到另一个线程也非常昂贵。 结果,大多数应用程序线程被阻塞,服务器使用率仍然不足。 另一方面,JVM将通过自己的调度程序来管理Java光纤。
如果我们看到Thread类相对于Fiber的方法,它将使图片更清晰。
线程: checkAccess()countStackFrames()getContextClassLoader()getId()getName()getPriority()getStackTrace()getState()getThreadGroup()getUncaughtExceptionHandler()interrupt()isAlive()isDaemon()isInterrupted()join()resume()run() )setContextClassLoader()setDaemon()setName()setPriority()setUncaughtExceptionHandler()start()stop()suspend()
纤维 await()cancel()isAlive()isCancelled()schedule()
创建和启动光纤非常简单
var fiber = new Fiber(() -> System.out.println("Hello from fiber")); fiber.schedule();
在当今的云计算世界中,应用程序按小时计费,减少服务器利用率不足是应用程序所有者的重中之重,光纤肯定会为他们提供帮助。