扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你的不是调试的问题 是错 通过编译了 但是你想实现的没有 很多错误抛出了 。。
10年积累的成都网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南城免费网站建设让你可以放心的选择与我们合作。
很简单 我给你个我写的程序,你可以参考一下 不懂的问我。
...到学校图书馆去借些盘吧。我们课程设计的时候就是从图书馆里面借盘然后铐程序的。里面都有现成的,改改就可行了。网上流传的那些项目,一般都是要么有bug,要么不能运行的。
这个不难,我正好有个类似的模板,稍微修改下文字,调整下就可以用了。
大二的话,应该学了java和数据库,那么你已经达到可以自己动手编写这个程序的程度了,不要说自己什么都不会,去图书馆找2本书,看看别人是怎么构建框架的,框架搭起来了什么都好说。
1,obj不是static,就是说每个线程都有自己的obj,synchronize锁的是自己线程的obj,不能起到阻塞其它线程的作用。运行的话会看到有的票被出售多次。
我们来模拟一个售票系统,实现通过四个售票点发售某次列车的100张票,一个售票点用一个县城来表示。
上面的代码中,我们用ThreadTest类模拟售票处的售票过程,run方法中的每一次循环都将总票数减1,模拟卖出一张车票,同时该车票号打印出来,直接剩余的票数到零为止。
只有在等待池中的线程,才有资格抢夺钥匙。 运行状态:即正在运行的线程。运行状态的线程,能够调用wait方法,让出钥匙,使自己休眠,进入到休眠池中,并会记录当前的运行状态,以便下次夺取钥匙的时候,能继续执行休眠前的动作。
你的答案有两个问题:1,obj不是static,就是说每个线程都有自己的obj,synchronize锁的是自己线程的obj,不能起到阻塞其它线程的作用。运行的话会看到有的票被出售多次。
像这种多线程之间存在共享资源的情况,一定要在操作共享资源的代码上加同步锁。就像你这代码里面的打印语句和--tickets语句就要加上同步锁,不能让它们在多个线程之间分开执行,否则会出错。
//错误是只需要定义个test对象,不然每次ticket都会被重置为1,因为你每一个线程都是n//ew 一个test对象。
但是要注意,s的定义一定要在run方法之外,不然还会出现负数。因为你启动了3个线程,每个线程都调用了run方法,在每个线程就会在run方法里边产生自己的s对象,一共会产生3个,达不到同步的目的。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流