当前位置: 首页 > news >正文

平江网站建设推广赚钱软件排行

平江网站建设,推广赚钱软件排行,公明做网站,app开发公司启动资金有哪些线程同步 案例:三个窗口卖100张票 //定义一个类SellTicket实现Runnable接口,定义成员变量100张票 public class SellTicket implements Runnable{private int tickets 100;//重写run方法Overridepublic void run(){while (true){ //没有票后&…

线程同步

  1. 案例:三个窗口卖100张票

    //定义一个类SellTicket实现Runnable接口,定义成员变量100张票
    public class SellTicket implements Runnable{private int tickets = 100;//重写run方法@Overridepublic void run(){while (true){       //没有票后,死循环一直让动作执行if(tickets>0){  //判断票数大于1卖票System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets+"张票");//告知卖票窗口tickets--; //卖票后总数减一}}}
    }
    //创建测试类
    public class SellTicketDemo{public static void main(String[] args){//创建SellTicket类对象SellTicket st = new SellTicket();//创建三个Thread类对象,把SellTicket对象作为构造方法的参数,给出对应窗口名称Thread t1 = new Thread(st,"窗口1");Thread t2 = new Thread(st,"窗口2");Thread t3 = new Thread(st,"窗口3");//启动线程t1.start();t2.start();t3.start();}
    }
    1. 多线程程序出现安全问题(条件:多线程环境;有共享数据;有多条语句操作共享数据)

避免安全问题,需要锁多条语句操作共享数据,可以使用同步代码块实现(线程过多时耗费资源)

格式:synchronized(任意对象){多条语句操作共享数据的代码}(相当于给代码加锁,任意对象可以看成是一把锁)

public class SellTicket implements Runnable{private int tickets = 100;private Object obj = new Object();//创建一个Object对象,当作同一把锁@Overridepublic void run(){while (true){synchronized(obj){  //当t1进来后,就会锁住代码,其他线程进不来if(tickets>0){  try{Thread.sleep(100);}//休息100毫秒catch(InterruptedException e){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets+"张票");tickets--; }}}}
}
  1. 同步方法: 同步方法:就是把synchronized关键字加到方法上 格式:修饰符 synchronized返回值类型 方法名(方法参数){}

    同步方法锁对象是 :this synchronized(this)

    同步静态方法:把synchronized关键字加到静态方法上 格式:修饰符 static synchronized 返回值类型 方法名(方法参数){}

    同步静态方法锁对象是:类名.class synchronized(SellTicket.class)

  2. Lock锁实现提供比使用synchronized方法和语句可以获得更广泛的锁定操作

    Lock中提供了获得锁和释放锁的方法:void lock():获得锁 void unlock():释放锁

    Lock是接口不能直接实例化,采用实现类ReentranctLock来实例化 ReentrantLock的构造方法:ReentrantLock():创建一个ReentrantLock实例

public class SellTicket implements Runnable{private int tickets = 100;private Lock lock = new ReentrantLock();//创建一个ReentrantLock实例化对象@Overridepublic void run(){while (true){try{lock.lock();if(tickets>0){  try{Thread.sleep(100);}//休息100毫秒catch(InterruptedException e){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets+"张票");tickets--; }finally{lock.unlock();}//释放锁不管上面代码是否出现错误都执行}}}
}
http://www.mmbaike.com/news/56138.html

相关文章:

  • 站长统计是什么意思怎么做互联网推广
  • 个人备案网站经营网络营销竞价推广
  • 西安做营销型网站如何免费制作自己的网站
  • 上海市网站全渠道营销的概念
  • 关于网站建设的网络诈骗的案例信息流广告优化师培训
  • 专业网站建设费用包括哪些搜索引擎最佳化
  • 高端企业网站建设规定seo快速排名软件平台
  • 手机访问asp网站seo是什么职业
  • 哪些网站可以做相册视频地推
  • 做网站界面一般用什么来做上优化seo
  • 献县做网站价格徐州网站设计
  • 济宁网站运营最新国际新闻头条新闻
  • 做网站没签合同游戏推广代理平台
  • phpcms网站开发b2b网站平台有哪些
  • apache 写wordpressseo推广怎么入门
  • 新手做网站教程百度24小时人工客服电话
  • 新疫情最新消息今天国外常用的seo站长工具
  • 水利局网站建设整改报告网络营销个人感悟小结
  • wordpress加导航栏视频seo搜索引擎优化工资
  • 医疗网站关键词是怎么排名的
  • 美国做调查网站专业搜索引擎seo合作
  • 做网站好还是做安卓app好广告营销案例100例
  • wordpress企业网站主题网站seo关键词排名查询
  • 中英文切换的网站怎么做百度推广登陆网址
  • 那里有做网站的优化网站
  • 邯郸网络名称百度seo软件是做什么的
  • 青浦网站开发关键词搜索引擎排名查询
  • 甘肃三北防护林建设局网站北京网站制作推广
  • 专门做视频点评的网站亚马逊seo什么意思
  • 网站后台密码忘了怎么办百度小说app下载