本文共 4549 字,大约阅读时间需要 15 分钟。
/** * Created with IntelliJ IDEA. * Description: If you don't work hard, you will a loser. * User: Listen-Y. * Date: 2020-09-29 * Time: 11:39 */public class ServiceStatic { public synchronized static void printA() { System.out.println(System.currentTimeMillis() + "进入printA_Static"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(System.currentTimeMillis() + "离开printA_Static"); } public synchronized static void printB() { System.out.println(System.currentTimeMillis() + "进入printB_Static"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(System.currentTimeMillis() + "离开printB_Static"); } public void printC() { System.out.println(System.currentTimeMillis() + "进入printC"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(System.currentTimeMillis() + "离开printC"); }}
import javax.net.ssl.SSLContext;/** * Created with IntelliJ IDEA. * Description: If you don't work hard, you will a loser. * User: Listen-Y. * Date: 2020-09-29 * Time: 11:41 */public class Run5 { public static void main(String[] args) { Thread thread = new Thread("A") { @Override public void run() { while (true) { ServiceStatic.printA(); } } }; Thread thread1 = new Thread("B") { @Override public void run() { while (true) { ServiceStatic.printB(); } } }; ServiceStatic serviceStatic = new ServiceStatic(); Thread thread2 = new Thread("C") { @Override public void run() { while (true) { serviceStatic.printC(); } } }; thread.start(); thread1.start(); thread2.start(); }}
1601380417431进入printA_Static1601380417431进入printC1601380417531离开printA_Static1601380417531离开printC1601380417531进入printC1601380417531进入printA_Static1601380417631离开printC1601380417631进入printC1601380417632离开printA_Static1601380417632进入printA_Static1601380417732离开printC1601380417732进入printC1601380417733离开printA_Static1601380417733进入printB_Static1601380417832离开printC1601380417832进入printC1601380417833离开printB_Static1601380417833进入printB_Static1601380417932离开printC1601380417932进入printC
public class Service { public void printStr(String str) { //给Str上锁 synchronized (str) { while (true) { System.out.println(Thread.currentThread().getName()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }}
public class ThreadA extends Thread { private Service service; public ThreadA(Service service) { this.service = service; } @Override public void run() { service.printStr("Listen"); }}class ThreadB extends Thread { private Service service; public ThreadB(Service service) { this.service = service; } @Override public void run() { service.printStr("Listen"); }}
public class Run4 { public static void main(String[] args) { Service service = new Service(); //创建俩个线程去执行 ThreadA threadA = new ThreadA(service); threadA.setName("A"); ThreadB threadB = new ThreadB(service); threadB.setName("B"); threadA.start(); threadB.start(); }}
AAAAAAProcess finished with exit code -1
public class Test { public static void main(String[] args) { String s = "Listen"; String s1 = "Listen"; System.out.println(s==s1); }}
true
转载地址:http://sjsci.baihongyu.com/