什么是多线程同步:
多个线程之间共享同一个资源。如果没有同步的话,多个线程就会出现异步,争CPU资源会出现数据错误,导致线程并发。有了同步后,可以实现数据的正确性。
同步锁:
同步锁中锁的是对象,不是方法或者是代码块。只有当一个线程停止时,另外一个线程才可以进入。这样可以保证数据同步,不会出现异步的情况。
同步方法:
synchronized关键字修饰的方法
public synchronized static boolean lock(){
boolean flag = false;
if (count>0){
flag = true;
System.out.println(Thread.currentThread().getName()+" "+"票数为"+(count--)+"号码");
}else {
flag = false;
}
return flag;
同步代码块
synchronized修饰的语句块
@Override
public void run() {
while (true){
synchronized (this){
//this表示当前对象,此时表示创建的 sys1
if(count > 0){
try {
//模拟卖票需要一定的时间
Thread.sleep(100);
} catch (InterruptedException e) {