当前位置: 首页 > 知识库问答 >
问题:

是不是多线程java进程比单线程程序更经常被操作系统调度?

邢运良
2023-03-14

当我运行一个多线程的java程序时,在执行ps -eF | grep program-name时,我只看到一个进程。作为该进程的一部分运行的线程是子进程。在调度方面,操作系统对待单线程和多线程进程是否有所不同?

共有1个答案

韶兴德
2023-03-14

不,对于单线程或多线程进程有统一的处理。操作系统将进程感知为线程的集合,并且仅调度线程;只有考虑或评估进程的优先级,它才会改变调度程序选择的整个游戏(推翻)

Java不调度,它将调度委托给底层操作系统。每个操作系统都有自己喜欢的调度方式。通常,可以声明上述内容(可能有例外!)

 类似资料:
  • 更多面试题总结请看:【面试题】技术面试题汇总 进程是一个拥有资源和执行任务的单元体。进程拥有的资源包括:内存空间中的代码、数据等;I/O 资源;文件;处理机等。 线程是一个执行任务的单元体。线程只拥有处理机,线程之间共享进程的资源,如内存、I/O 等。 对比:   进程 线程 资源 进程是一个拥有资源和执行任务的单元体。 线程是一个执行任务的单元体,不拥有资源,线程之间共享地址空间 切换开销 开销

  • 问题内容: Scrapy中很少有并发设置,例如CONCURRENT_REQUESTS。这意味着Scrapy搜寻器是多线程的吗?因此,如果我运行它,将在字面上并行触发多个同时请求?我问是因为,我读过Scrapy是单线程的。 问题答案: Scrapy是单线程的,除了交互式外壳程序和一些测试之外,请参见source。 它建立在Twisted的基础上,Twisted也是单线程的,并且利用了它自己的异步并发

  • 问题内容: 我想检查多线程是否比单线程快,然后在这里进行演示: 首先我用两个sum方法运行singleThreadStart,结果是 然后我运行secondThreadStart,结果是 然后我用五和方法运行singleThreadStart,结果是 最后我运行FiveThreadStart,结果是 我的问题是: SecondThreadStart比singleThreadStart花费更多的时间

  • 我想检查多线程是否比单线程快,然后我在这里做一个演示: 首先,我用二和方法运行singleThreadStart,结果是 然后我运行第二个ThreadStart,结果是 然后我用五和方法运行singleThreadStart,结果是 最后我运行fiveThreadStart,结果是 我的问题是: SecondThreadStart比singleThreadStart花费更多的时间,是因为创建线程的

  • 问题内容: 在阅读了这样的问题之后,我有了一些疑问。请帮助理解。 调度涉及确定何时运行流程以及运行时间的多少。 linux内核是否调度线程或进程?由于内核中的进程和线程没有区别,调度程序如何对待它们? 如何确定每个线程的数量?一个。如果为一个进程确定了一个时间量(例如100us),是在该进程的所有线程之间共享该时间吗?或b。每个线程的数量由调度程序决定吗? 注意:问题1和问题2是相关的,可能看起来

  • 我正在开发应用程序(Matt的traceroute windows版本http://winmtr.net/),它创建了多线程,每个线程都有自己的进程(执行ping命令)。 使用阻塞队列(在任务执行之前保留任务) 平丝。JAVA 现在如果我创建多个线程,比如在一个循环中超过500个线程,并在池执行器中执行 执行线程 我确实知道LinkedBlockingQueue在执行任务之前持有任务。每个线程的进