java吧 关注:1,244,082贴子:12,720,010
  • 5回复贴,共1

多线程编程

只看楼主收藏回复


为什么同一张票会被多个线程利用?我试过用synchronized,但是这样结果就只有一个线程能运行,比如一号窗口一直把票卖完,二三线程都不能启动。想问哪边错了?


IP属地:江苏1楼2016-02-06 17:14回复
    1.tickets和flag设置成static的。2. 循环最好是while(true) ,条件达成就break,否则加锁要包含整个循环,达不到多线程的目的。3. 加锁代码行尽量少,最好使用共享变量时才锁。


    IP属地:湖北来自Android客户端2楼2016-02-06 17:28
    收起回复
      这个更本就不需要什么锁吧加个判断不就好了吗再把那个字段用volatile和static修饰


      IP属地:辽宁来自Android客户端4楼2016-02-10 13:20
      回复