100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java多线程买票实例

java多线程买票实例

时间:2020-05-26 19:35:54

相关推荐

java多线程买票实例

3个窗口同时买票

*

* 同步:

* 1:同步代码块

* synchronized(锁对象(唯一)){

*

* …需要被同步的代码

*

* }

* 2:同步方法

* 修饰符 synchronized 返回值 方法名(){

* …需要被同步的代码

* }

*

* 3:Lock锁

* lock.lock() 上锁

* …需要被同步的代码

* lock.unlock() 释放锁

*

* 同步的使用场景?

* 1:需要多线程环境

* 2:需要有共享的资源

* 3:在多线程的环境下共享资源

public class Demo {public static void main(String[] args) {//1:创建3个线程SellTickets s1 = new SellTickets();SellTickets s2 = new SellTickets();SellTickets s3 = new SellTickets();//2:起名s1.setName("窗口1");s2.setName("窗口2");s3.setName("窗口3");//3:启动多线程s1.start();s2.start();s3.start();}}

import java.util.ArrayList;public class SellTickets extends Thread {static int tickets = 100; //票数static ArrayList al = new ArrayList<>();@Overridepublic void run() {//模拟电影院一直售票while(true){//条件synchronized(al){if(tickets>0){//网络延迟try {SellTickets.sleep(100L);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(this.getName()+"正在出售第"+(tickets--)+"张票");}}System.out.println("你好吗?");}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。