当前位置: 首页 > 面试题库 >

用Java创建的线程在Windows和Linux上的行为是否不同?

荆煌
2023-03-14
问题内容

据我所知,Java使用的是操作系统线程(与Erlang相反),这意味着在Windows和Linux上用Java创建的线程的行为可能有所不同。

Windows和Linux上的Java线程是否有差异?最大的区别是什么?可能只是性能上的差异?


问题答案:

这是一个非常笼统的问题,所以我将给出一个一般性的答案。

Java
在其开发的早期就从绿色线程转换为本地线程。这并不意味着在Windows和Linux上创建的线程的行为会有所不同,因为两个平台都将在各自的JVM实现中利用本机线程。

每个操作系统向Java公开的线程接口,以及与通过pthread和Windows线程进行线程化的本机接口,都非常相似。

关于这两个平台上的线程,最大的不同是Linux上的所有线程都是一种过程。Windows对线程和进程的处理方式非常不同。

以我个人的经验,Windows上的本机线程稍微更轻一些,并且在单进程应用程序中可能会表现更好。与此相对应(也许不相关)的是,与Linux相比,Windows进程的重量特别大。



 类似资料:
  • 问题内容: 我正在使用javax.swing.Timer安排和运行事件。但是它似乎冻结了GUI。只是想知道这些事件是在单独的线程上运行还是我自己必须执行。 谢谢 问题答案: “尽管所有计时器都使用一个共享线程(由执行的第一个计时器对象创建)执行等待,但计时器的动作事件处理程序在另一个线程(事件调度线程)上执行。这意味着计时器的动作处理程序可以安全地在Swing组件上执行操作。但是,这也意味着处理程

  • 我们有一个GWT应用程序。我们使用Maven 3构建并运行GWT应用程序。当我们在Windows 7上构建和运行,并在Windows上的IE上测试时,应用程序运行良好。然而,当我们在Linux上编译和运行应用程序,然后在Windows上的IE上测试时,应用程序看起来就不同了。排除客户端问题:我们在Windows7上测试完全相同的客户端-Internet Explorer。进一步调查显示,Linux

  • 问题内容: 如何在Windows和Linux计算机上使用Java代码创建文件夹? 问题答案: 如果要创建嵌套文件夹(即路径中可能缺少多个文件夹),请使用。请参阅。 请注意,在Windows上通常不能使用正斜杠,但是Java会规范化路径并将正斜杠转换为反斜杠。

  • 到目前为止,我的印象是,在同一时间启动的两个线程也是并行执行的(两个线程都在同一时间运行它们的代码段),但我最近阅读了一些文档,我了解到它们实际上轮流执行它们的代码,因此第一个线程的代码段与第二个线程的代码段在同一时间执行是不存在的。我的理解正确吗? 如果是,那么多线程执行比单线程执行快多少?我这么问是因为唯一的区别是单线程顺序执行代码,而多线程可以轮流执行,但仍然需要相同的时间,因为它不是并行执