吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1981|回复: 10
收起左侧

[求助] 同步锁

[复制链接]
宁程大大 发表于 2019-10-16 17:45
本帖最后由 宁程大大 于 2019-10-16 18:38 编辑


public class WindowTest {
    public static void main(String[] args) {
        Window w = new Window();
        Thread t1 = new Thread(w, "窗口一");
        Thread t2 = new Thread(w, "窗口二");
        Thread t3 = new Thread(w, "窗口三");
        t1.start();
        t2.start();
        t3.start();
    }

}

class Window implements Runnable {
    private int ticket = 100;
    Object obj = new Object();

    @Override
    public void run() {


        while (true) {
            synchronized (obj) {
                if (ticket > 0) {
                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    System.out.println(Thread.currentThread().getName() + ":" + ticket);

                    ticket--;
                }else{
                    break;
                }
            }
        }
    }
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Ca1m_01 发表于 2019-10-16 17:54
加了锁,不就是想 一个线程执行,不想让其他线程执行嘛。你的问题应该是 ticket 把 值消耗完了,而已 后面 窗口2 和 窗口3 没有执行。。。建议 学会 debug 再提问。
yaoshihao 发表于 2019-10-16 18:00
你这只创建了一个Window ,那就是已有一个object,只有一个线程能拿到锁
 楼主| 宁程大大 发表于 2019-10-16 18:01
Ca1m_01 发表于 2019-10-16 17:54
加了锁,不就是想 一个线程执行,不想让其他线程执行嘛。你的问题应该是 ticket 把 值消耗完了,而已 后面  ...

怎么让它们同时执行呢
yaoshihao 发表于 2019-10-16 18:03
宁程大大 发表于 2019-10-16 18:01
怎么让它们同时执行呢

最简单的,你创建3个window对象,就同时执行了
Ca1m_01 发表于 2019-10-16 18:04
不要加锁啊啊啊啊啊 a
 楼主| 宁程大大 发表于 2019-10-16 18:05
yaoshihao 发表于 2019-10-16 18:03
最简单的,你创建3个window对象,就同时执行了

那就变成300张票了
Ca1m_01 发表于 2019-10-16 18:05
你跟哪里学的 代码,去看例子
 楼主| 宁程大大 发表于 2019-10-16 18:15
Ca1m_01 发表于 2019-10-16 18:05
你跟哪里学的 代码,去看例子

这就是源码,他那里可以跑出三个窗口
Ca1m_01 发表于 2019-10-16 18:20
不打辩论。一共就没多少代码,别人可以,你不可以。那就找自己的问题。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 00:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表