线程同步
作者:互联网
线程同步(重点、难点)
并发
并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
队列和锁
食堂排队
保证安全性,比如厕所可以上锁doge
锁机制synchronized synchronized
package com.zishi.syn;
//不安全的买票
//线程不安全,有负数
public class UnsafeBuyTicket {
public static void main(String[] args) {
BuyTicket buyTicket = new BuyTicket();
new Thread(buyTicket,"小黄").start();
new Thread(buyTicket,"老黄").start();//doge
new Thread(buyTicket,"黄牛").start();
}
}
class BuyTicket implements Runnable{
//票
private int ticketNums = 10;
boolean flag = true;//外部停止方式
@Override
public void run() {
//买票
while (true){
buy();
}
}
private void buy(){
//判断是否有票
if(ticketNums<=0){
flag = false;
return;
}
//模拟延时
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//买票
System.out.println(Thread.currentThread().getName()+"抢到了"+ticketNums--);
}
}
每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
标签:同步,Thread,void,线程,buyTicket,new,public 来源: https://www.cnblogs.com/yizhifei/p/15224807.html