如果我有一个大数组(400000 个元素),一个具有最高优先级的线程和一个同步读取方法 如果这个线程访问它并且长时间不将对象释放给其他低优先级的线程,我们可以说是 STARVATION 吗??
或者饥饿是一个只涉及线程无限期推迟释放其对象锁的情况的术语?
最佳答案
饥饿是指 Java 运行时 (JVM) 没有为线程分配时间来执行。这可能是由于糟糕的调度算法(如 Solaris 下的绿色线程,其中从 1 到 100 万的 for 循环做一些 CPU 密集型的事情不会在 Solaris 下产生 CPU 但在 Windows 下会产生),糟糕的编程实践(不从返回) applet 中的 paint() 方法)或恶意攻击(例如使用 CPU 在 Java 进程之外忙碌的拒绝服务攻击攻击主机)。
关于java - 线程饥饿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412462/