A única linha é segura porque existe apenas um thread e não há vários threads que pegam o mesmo recurso.
Exemplo de código:
public class singleThread {int num = 10; public void add () {while (num <13) {num ++; try {thread.sleep (1000);} catch (exceção e) {System.out.println ("interrupt");} system.out.println (num);}}} estático maid "); // Obtenha o thread de thread no thread Atualmente Thread.setName ("single Thread"); // Thread Rename System.out.println (Thread.getName ()+"Running");Segurança multithreada, blocos de código sincronizado sincronizado
sincronizado (objeto) {}; // bloco de código sincronizado
Nome do método do valor de retorno sincronizado () {}; // Método sincronizado
classe um {int num = 10; public void add () {sincronizado (this) {// blocos de código de sincronização, o método de sincronização também pode atingir o efeito sincronizado void add () {}; num ++; tente {thread.sleep (1000); } catch (interruptedException e) {System.out.println ("interrompido"); } System.out.println (num); }}} Classe dois implementos runnable {One One = new One (); @Override public void run () {One.add (); // chamando o método add}} public class Synch {public static void main (string [] args) {dois dois = new dois (); Thread t1 = novo thread (dois); // Crie três threads infantis threads t2 = novo thread (dois); Thread t3 = novo thread (dois); t1.start (); t2.start (); t3.start (); }}Nota: Observe a diferença na execução dos resultados da remoção de palavras -chave sincronizadas!
Resultados normais de operação:
11
12
13