线程
线程
梦想家Peng 发表于2年前
线程
  • 发表于 2年前
  • 阅读 3
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

线程的同步
-----------------------------------

当存在多个线程同时修改一个值时,可能会出现先后修改的现象,也可能出现同时修改的现象。在有些场景中,可能只允许先后依次修改,而不允许同时修改。
解决线程同步的安全问题,可以使用互斥锁,使用到的关键字是synchronized,使用方式是用synchronized将需要互斥的代码框住,其中,synchronized后的括号内必须是多个线程共同访问的对象,例如:

synchronized (obj) {
    if (account.amount >= 800) {
        System.out.println(name + "检查到余额为" + account.amount
                + ",开始取钱 ... ...");
        account.amount -= 800;
        System.out.println(name + "取款完成!余额为" + account.amount + "!");
    } else {
        System.out.println(name + "检查到余额不足,取钱失败!");
    }
}

synchronized也可以用于修饰方法,如果使用这样的语法,必须保证该方法所在的类的对象,在多个线程之间是共享的。


线程的其它方法
-----------------------------------
setName() / getName():设置/获取线程的名称
getId():获取线程的ID
setPriority() / getPriority:设置/获取线程的优先级,表现为优先级越高,被分配到系统资源进行运算的单次时长可能越长,取值为1-10,可以使用常量表示:MIN_PRIORITY NORM_PRIORITY MAX_PRIORITY
Thread.currentThread():获取当前线程的对象

共有 人打赏支持
粉丝 0
博文 33
码字总数 15605
×
梦想家Peng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: