美女上司求解衣谢谢......

求解谢谢了_百度知道
求解谢谢了
提问者采纳
不是像素问题,而是这软件问题
看不清,自己慢慢写吧!
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁初学 Java,利用多线程交替打印数字和字母的程序会抛出 java.lang.IllegalMonitorStateException 异常 ,哪里的问题求解,谢谢
class Monitor {
&&& private static Monitor monitor =
&&& private Monitor() {
&&& public static Monitor getMonitor() {
&&&&&&& if (monitor == null) {
&&&&&&&&&&& monitor = new Monitor();
* 连续打印两个数字,然后等待
* @author admin
class NumberPrinter implements Runnable {
&&& private int num = 1;
&&& public void run() {
&&&&&&& synchronized (Monitor.getMonitor()) {
&&&&&&&&&&& while (num & 52) {
&&&&&&&&&&&&&&& System.out.print(num + " " + (num + 1) + " ");
&&&&&&&&&&&&&&& num += 2;
&&&&&&&&&&&&&&& Monitor.getMonitor().notify();
&&&&&&&&&&&&&&& if (num & 52) {
&&&&&&&&&&&&&&&&&&& try {
&&&&&&&&&&&&&&&&&&&&&&& Monitor.getMonitor().wait();
&&&&&&&&&&&&&&&&&&& } catch (InterruptedException e) {
&&&&&&&&&&&&&&&&&&&&&&& e.printStackTrace();
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
* 打印一个字母,然后等待
* @author admin
class CharPrinter implements Runnable {
&&& private char ch = 'A';
&&& @Override
&&& public void run() {
&&&&&&& synchronized (Monitor.getMonitor()) {
&&&&&&&&&&& while (ch &= 'Z') {
&&&&&&&&&&&&&&& System.out.print(ch + " ");
&&&&&&&&&&&&&&& ch += 1;
&&&&&&&&&&&&&&& Monitor.getMonitor().notify();
&&&&&&&&&&&&&&& if (ch &= 'Z') {
&&&&&&&&&&&&&&&&&&& try {
&&&&&&&&&&&&&&&&&&&&&&& Monitor.getMonitor().wait();
&&&&&&&&&&&&&&&&&&& } catch (InterruptedException e) {
&&&&&&&&&&&&&&&&&&&&&&& e.printStackTrace();
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
public class Main {
&&& public static void main(String[] args) {
&&&&&&& Thread thread1 = new Thread(new NumberPrinter());
&&&&&&& Thread thread2 = new Thread(new CharPrinter());
&&&&&&& thread1.start();
&&&&&&& thread2.start();
&&&&&&& try {
&&&&&&&&&&& thread1.join();
&&&&&&&&&&& thread2.join();
&&&&&&& } catch (InterruptedException e) {
&&&&&&&&&&& e.printStackTrace();
public static Monitor getMonitor() {
if (monitor == null) {
monitor = new Monitor();
问题是单例模式在多线程使用的情况下,没有加同步锁
引用&&&&&&&&&&&&&&&&& try {
&&&&&&&&&&&&&&&&&&&&&&& Monitor.getMonitor().wait();
&&&&&&&&&&&&&&&&&&& } catch (InterruptedException e) {
&&&&&&&&&&&&&&&&&&&&&&& e.printStackTrace();
&&&&&&&&&&&&&&&&&&& }
wait要有synchronized
Monitor m=Monitor.getMonitor();
synchronized(m){
} catch (InterruptedException e) {
e.printStackTrace();
已解决问题
未解决问题}

我要回帖

更多关于 excel 规划求解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信