当前位置: 首页 > 股票分析 >详情

票一票什么意思(一票多卖犯法吗)

  • 股票分析
  • 2024-10-09 04:19:07
  • 302

成功买票后,让线程休眠2秒。

票一票什么意思(一票多卖犯法吗)

嗯,我尝试过。虽然售票速度慢且分布不均匀,但至少有6个线程可以买票。

操作系统的PV操作是一个调用公共资源的小模块。建议学习一下。

我询问了12306工作人员,他们说剩余的门票可以通过身份证自助识别在取票机上领取。我得先挂失,然后去售票窗口领取。我认为这是可靠的。我在取票的时候选了一张。谁知道? #8205;

很简单,给票加一把锁就可以了。完整代码:nbsp;publicnbsp;classnbsp;Testnbsp;{publicnbsp;staticnbsp;voidnbsp;main(String[]nbsp;args)nbsp;{for(intnbsp;i=0;nbsp;ilt; 3;nbsp;i ){newnbsp;线程(“Threadnbsp;”nbsp;nbsp;i){publicnbsp;voidnbsp;run()nbsp;{while(true){intnbsp;pnbsp;=nbsp;getNumber();if(pnbsp;gt;0nbsp;) {System.out.println(getName()nbsp;nbsp;quot;nbsp;票号:nbsp;quot;nbsp;nbsp;p);}else{System.out.println("没有投票");break;}} };}.start();}}publicnbsp;staticnbsp;intnbsp;numnbsp;=nbsp;100;//总票数/**nbsp;*nbsp;synchronizednbsp;同步锁nbsp;当前票减一}returnnbsp;0;}}

师傅,您提供的是三个窗口随机售票的情况。我想按顺序卖票。第一张票在1 号窗口出售,第二张票在2 号窗口出售,第三张票在3 号窗口出售,以此类推。

使用同步代码块修改需要操作的资源(票证)

线程同步有锁。从百度同步下载。

如果是数据库,可以使用数据库的锁机制。如果想在自己的程序中进行控制,可以使用同步机制。谁先抢占Ticket资源,谁就获得该资源的处理权限。其他应用程序将被保存。放入请求队列,或者干脆直接拒绝。

一般情况下,只要已售出的门票在系统数据库中进行了标记,该门票就不会再次出售。

让每个线程只买一个,买完后解锁,然后回到线程池等待下一次机会。

手机调用,同步后缺少括号

代码简单实现如下:只需在售票方法中添加synchronized即可。但现实中(如:12306),使用的是信号量机制、缓存机制、多线程等。

线程同步锁机制synchronized可以看PV操作避免冲突(操作系统)

publicnbsp;classnbsp;Yuginbsp;implementsnbsp;Runnable{@Overridepublicnbsp;voidnbsp;run(){Stringnbsp;namenbsp;=nbsp;Thread.currentThread().getName();while(name.startsWith("Window")){ if( Tickets.lengthnbsp;==nbsp;0)nbsp;{stop();break;}intnbsp;numnbsp;=nbsp;(int)nbsp;(Math.random()nbsp;*nbsp;tickets.length)nbsp ; nbsp;1;ticketsnbsp;=nbsp;newnbsp;int[tickets.lengthnbsp;-nbsp;num];System.out.println(namenbsp; nbsp;quot;nbsp;Soldnbsp;quot;nbsp; nbsp;numnbsp ; nbsp;quot ;nbsp;ticketquot;);try{Thread.sleep(500);}catch(InterruptedExceptionnbsp;e){}}}publicnbsp;synchronizednbsp;voidnbsp;start(){for(intnbsp;inbsp;=nbsp;0;nbsp; inbsp;lt;nbsp;ts.length;nbsp;i ){Threadnbsp;threadnbsp;=nbsp;ts[i];if(threadnbsp;==nbsp;null){threadnbsp;=nbsp;newnbsp ;线程(this); thread.setPriority(Thread.MIN_PRIORITY);thread.setName("窗口"nbsp;nbsp;(inbsp;nbsp;1));thread.start();}}}publicnbsp;synchronizednbsp; voidnbsp;stop(){for(intnbsp;inbsp;=nbsp;0;nbsp;inbsp;lt;nbsp;ts.length;nbsp;i ){Threadnbsp;threadnbsp;=nbsp;ts[i];if(threadnbsp;=nbsp;null){thread.interrupt();}threadnbsp;=nbsp;null;}notifyAll();}staticnbsp;nbsp;int[]nbsp;ticketsnbsp;=nbsp;newnbsp;int[100];privatenbsp; staticnbsp;intnbsp;WINnbsp;=nbsp;5;Thread[]nbsp;tsnbsp;=nbsp;newnbsp;Thread[WIN];publicnbsp;staticnbsp;voidnbsp;main(String[]nbsp;args){newnbsp;Yugi().开始();}}

相关资讯