同步代码块java
对象如同锁。持有锁的线程能够在同步中执行。安全
没有持有锁的线程即便获取cpu的执行权。也进不去。由于没有获取锁。多线程
火车上的卫生间 --经典ide
同步的前提:线程
1.必需要有2个或者2个以上的线程。对象
2.必须是多个线程使用同一个锁。资源
必须保证同步中只能有一个线程在运行。get
好处:解决了多线程的安全问题。同步
弊端:多个线程须要判断锁。较为消耗资源。it
/* 同步代码块 对象如同锁。持有锁的线程能够在同步中执行。 没有持有锁的线程即便获取cpu的执行权。也进不去。由于没有获取锁。 火车上的卫生间 --经典 同步的前提: 1.必需要有2个或者2个以上的线程。 2.必须是多个线程使用同一个锁。 必须保证同步中只能有一个线程在运行。 好处:解决了多线程的安全问题。 弊端:多个线程须要判断锁。较为消耗资源。 */ class Ticketest implements Runnable { private int tick = 100; Object obj = new Object(); public void run() { while(true) { synchronized(obj) { if(tick>0) { try { Thread.sleep(10); } catch (Exception e) { } System.out.println(Thread.currentThread().getName()+"....tick="+tick--); } } } } } class Test_11_09 { public static void main(String[] args) { System.out.println("Hello Wolrd"); } }