El lenguaje Java es uno de los lenguajes más populares durante muchos años. Una de las características más ventajosas de la programación Java es Multithreading. Multithreading permite ejecutar un solo programa en muchas partes pequeñas del programa con la máxima utilización de la CPU. Los subprocesos son un proceso liviano que ayuda a ejecutar el proceso grande concurrente de manera eficiente. pero a veces estos hilos disminuyen la eficiencia del programa.
Tomemos un ejemplo de la vida real de por qué el uso inválido del concepto de subprocesos múltiples conduce a una disminución en la eficiencia y los recursos del programa.
Ejemplo de la vida real
Considere una clase que tiene estudiantes y un maestro les está enseñando a considerar a un maestro como un hilo porque los exámenes de los estudiantes están llegando casi todos los diferentes maestros (Mutlthreads) intentan enseñar lo más posible, por lo que están enseñando al azar uno por uno para completar el plan de estudios lo antes posible.
Esto podría reducir el deber de los profesores, es decir, hilos para completar su tarea, pero la carga de los estudiantes aumentará demasiado. Para hacer frente a esta situación, tenemos que sincronizar el tiempo de los profesores, es decir, los hilos para que se pueda reducir la confusión entre los estudiantes. De manera similar, en Java podemos sincronizar los subprocesos para acceder a los recursos particulares (funciones) significa bloquear los recursos para que solo un recurso pueda acceder a ellos a la vez. En este artículo, discutiremos cómo verificar si el hilo tiene un bloqueo en un objeto particular en Java o no.
El método holdLock() se usa para verificar el bloqueo en el objeto particular durante el tiempo de ejecución del programa Java
Parámetros: este método toma la referencia/objeto de la clase en la que queremos verificar si el bloqueo está presente en los hilos o no.
Tipo de devolución: este método devuelve parámetros booleanos, es decir, verdadero o falso. Verdadero significa bloqueo de monitor disponible en el objeto actual.
Ejemplo
Java
// Java Program Illustrating How to Check if a Thread Holds // Lock on a Particular Object // Importing the libraries import java.io.*; import java.util.*; // Main class class GFG { // Creating the constructor GFG() { // Checking the status of the lock on the object System.out.println(Thread.holdsLock(this)); // Synchronizing the thread synchronized (this) { // Checking the status of the lock on the object // using holdsLock() method over // same thread using this keyword System.out.println(Thread.holdsLock(this)); } } // Main driver method public static void main(String[] args) { // Creating a Thread class object Thread ob = new Thread() { // run() method for this thread which // is invoked as start() method is invoked public void run() { // Creating a class object // inside the run() methodof the class GFG ob1 = new GFG(); } }; // Starting the thread with // the help of start() method ob.start(); } }
false true
Publicación traducida automáticamente
Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA