Programovací jazyk Java podporuje . Zahrnuje více vláken běžících současně pro multitasking. Ale v určitých případech nebo kvůli určitým nedostatkům se vlákna ocitnou ve stavu čekání navždy. V tomto článku porozumíme stavu zablokování v a různé způsoby, jak se tomu vyhnout. Níže jsou diskutována témata v tomto blogu:
Co je zablokování v Javě?
Zablokování v Javě je stav, kdy jsou dvě nebo více vláken navždy blokovány a čekají na sebe.
K tomu obvykle dochází, když více vláken potřebuje stejné zámky, ale získat je v různých objednávkách. v Javě trpí zablokování kvůli synchronizovanému klíčovému slovu.
Způsobí blokování provádějícího vlákna při čekání na zámek nebo monitor spojený se zadaným objekt .
Příklad zablokování
public class Příklad {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Thread t1 = new Thread () {public void run () {synchronized (r1) {System. out.println ('Thread 1: Locked r1') try {Thread.sleep (100)} catch (exception e) {} synchronized (r2) {System.out.println ('Thread 1: Locked r2')}}} } Thread t2 = new Thread () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') try {Thread.sleep (100)} catch (exception e) {} synchronized (r2) {System.out.println ('Thread 2: Locked r2')}}}} t1.start () t2.start ()}}
Výstup: Závit 1: Uzamčeno r1 Závit 2: Uzamčeno r2
Jak se vyhnout zablokování v Javě?
I když není zcela možné vyhnout se zablokování, ale můžeme se řídit určitými opatřeními nebo ukazateli, abychom se jim vyhnuli:
spojení dvou zdrojů dat
Vyhněte se vnořeným zámkům - Musíte se vyvarovat blokování více vláken, to je hlavní důvod zablokování. Obvykle se to stane, když dáte zámky více vláknům.
Vyhněte se zbytečným zámkům - Zámky by měly být přiděleny důležitým vláknům. Dává zámky zbytečným podprocesům, které způsobují zablokování.
Používání vlákna - Zablokování se obvykle stane, když jedno vlákno čeká na dokončení druhého. V tomto případě můžeme použít Thread.join s maximální dobou, kterou vlákno zabere.
Tím se dostáváme na konec tohoto článku, kde jsme se dozvěděli o zablokování v Javě a jak se mu vyhnout. Doufám, že máte jasno se vším, co bylo s vámi v tomto tutoriálu sdíleno.
najít největší prvek v poli java
Pokud shledáte tento článek jako „Zablokování v Javě“ relevantní, podívejte se na důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě.
Jsme tu, abychom vám pomohli s každým krokem na vaší cestě a přišli s osnovami určenými pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování Java a naučil vás základní i pokročilé koncepty Java spolu s různými jako Přezimovat & .
Pokud narazíte na jakékoli dotazy, neváhejte se zeptat na všechny své dotazy v sekci komentářů v „Zablokování v Javě“ a náš tým vám rád odpoví.