老师,请问用String的变量作为锁对象就不能实现线程同步了吗?
package com.itbaizhan; public class TestSynchronized { public static void main(String[] args) { Programmer p = new Programmer("张三"); Programmer p1 = new Programmer("李四"); new Wcc(p).start(); new Wcc(p1).start(); } } class Programmer extends Thread{ private String name; public Programmer(String name) { this.name = name; } public void wc() { synchronized (this.name) { try { System.out.println(this.name + "打开卫生间大门"); Thread.sleep(500); System.out.println(this.name + "开始排泄"); Thread.sleep(500); System.out.println(this.name + "冲水"); Thread.sleep(500); System.out.println(this.name + "离开卫生间"); } catch (InterruptedException e) { e.printStackTrace(); } } } } class Wcc extends Thread{ private Programmer p; public Wcc(Programmer p){ this.p = p; } @Override public void run() { this.p.wc(); } }
老师Node类定义的private类型的元素在链表接口中不久调用不到了吗
不是很懂这句话
老师,为什么在while循环中输入正确的数(比如1)在break跳出循环后,又会继续回到循环里面一直显示主菜单的6个选项?
break不应该是结束当前循环才对吗?
想请问一下 老师上课用的word文档在哪下载,电脑坏了想先占时看看文档复习一下
老师 你这个带翻译的api在哪下的
老师这样写的异常时因为啥啊
老师这个Interator是接口还是接口定义的方法啊
创建对象时list调用的这个iterator又是个啥
老师这里创建迭代器对象不是很明白
//老师,如果在Account类中重写equals方法,使得当accountNo相同的情况下判定为同一对象 那为什么线程同步没有进行互斥呢 import java.util.Objects; class Account { private String accountNo; private double balance; @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Account account = (Account) o; return Double.compare(account.balance, balance) == 0 && Objects.equals(accountNo, account.accountNo); } @Override public int hashCode() { return Objects.hash(accountNo, balance); } public Account(String accountNo, double balance) { this.accountNo = accountNo; this.balance = balance; } public Account() { } public String getAccountNo() { return accountNo; } public void setAccountNo(String accountNo) { this.accountNo = accountNo; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } } class DrawThread extends Thread { //账户对象 private Account account; private double drawMoney; public DrawThread(String Name, Account account, double drawMoney) { super(Name); this.account = account; this.drawMoney = drawMoney; } @Override public void run() { synchronized (this.account){ //判断当前账户余额是否大于或等于取款金额 if (this.account.getBalance() >= this.drawMoney) { System.out.println(this.getName() + "取款成功!" + this.drawMoney); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } //更新账户余额 this.account.setBalance(this.account.getBalance() - this.drawMoney); System.out.println("当前余额为:" + this.account.getBalance()); } else { System.out.println(this.getName() + "取款失败,余额不足"); } } } } public class DrawMoneyDemo { public static void main(String[] args) { Account account = new Account("1001", 1000); Account account1 = new Account("1001", 1000); System.out.println(account1.equals(account)); new DrawThread("老公", account, 800).start(); new DrawThread("老妞", account1, 800).start(); } }
想问一个问题,我在写发送消息线程时,synchronized中的"abc".wait()会飘红,必须在catch中处理InterruptedException异常才行,但是视频中和其他提问的同学都没出现这个异常,想知道是怎么回事?
老师想问一下a与b完全没有交集的时候,差集会失败吗,会返回false吗
视频中的temp是什么意思老师
原来是找文件报的一个filenot异常 后来又是这个read异常 在方法声明里直接是IOException 是不是这个io异常直接覆盖了filenotexception了呢
不明白这里为什么要另外push右边的元素进去,不应该全部push字符串里面的元素进栈,然后再将出栈元素与从头开始扫描的str元素相比较,若不同则返回false吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637